[编程题] 优惠券

时间限制:1秒

空间限制:32768K

美团点评上有很多餐馆优惠券,用户可以在美团点评App上购买。每张优惠券有一个唯一的正整数编号。当用户在相应餐馆就餐时,可以在餐馆使用优惠券进行消费。优惠券的购买和使用按照时间顺序逐行记录在日志文件中,运营人员会定期抽查日志文件看业务是否正确。业务正确的定义为:一个优惠券必须先被购买,然后才能被使用。

某次抽查时,发现有硬盘故障,历史日志中有部分行损坏,这些行的存在是已知的,但是行的内容读不出来。假设损坏的行可以是任意的优惠券的购买或者使用。

现在问这次抽查中业务是否正确。若有错,输出最早出现错误的那一行,即求出最大s,使得记录1到s-1满足要求;若没有错误,输出-1。

输入描述:

m 分别表示 m (1 ≤ m ≤ 5 * 10^5) 条记录。下面有m行,格式为:I x (I为Input的缩写,表示购买优惠券x);O x(O为Output的缩写,表示使用优惠券x);? (表示这条记录不知道)。这里x为正整数,且x ≤ 10^5 。

输出描述:

-1 或 x(1 ≤ x ≤ m) 其中x为使得1到x-1这些记录合法的最大行号。

输入例子:

0
1
O 1
2
?
O 1
3
I 1
?
O 1
2
I 2
O 1

输出例子:

-1
1
-1
-1
2

有点坑,要考虑很多细节东西。

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;public class T3优惠券 {private static final Set Set = null;/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);while(sc.hasNext()){int m=sc.nextInt();int x=-1;int[] input=new int[m];int unknown=0;boolean f=false;for (int i = 0; i < m; i++) {char c=sc.next().charAt(0);if(c=='I'){int k=sc.nextInt();boolean falg=true;for (int j = 0; j < input.length && f==false; j++) {if(k==input[j]){falg=false;input[i]=-1;break;}else if(input[j]==0)break;}if(falg)input[i]=k;        }else if(c=='O'){int k=sc.nextInt();input[i]=-1;boolean falg=true;for (int j = 0; j < input.length && f==false; j++) {if(k==input[j]){input[j]=-1;falg=false;break;}else if(input[j] == 0){break;}}if(falg && f==false){if(unknown>0){unknown--;}else{x=i+1;f=true;}}}else if(c=='?'){input[i]=-1;unknown++;}}System.out.println(x);}}
}

【CodeM编程】优惠券相关推荐

  1. 美团点评CodeM编程大赛-题二

    美团点评CodeM编程大赛-题二 题目描述 组委会正在为美团点评CodeM大赛的决赛设计新赛制. 比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛.复赛的成绩,会有不同的积分.比 ...

  2. 看看谁获得了CodeM编程大赛的10万奖金

    7月27日,美团点评举办的CodeM编程大赛落幕.经过此前的激烈角逐,来自北京大学的吉如一同学夺得本次大赛冠军,获得单人现金税后10万元大奖. 美团点评高级副总裁穆荣均在CodeM颁奖现场表示,美团点 ...

  3. 美团codeM资格赛 优惠券

    优惠券 时间限制:1秒 空间限制:32768K 美团点评上有很多餐馆优惠券,用户可以在美团点评App上购买.每张优惠券有一个唯一的正整数编号.当用户在相应餐馆就餐时,可以在餐馆使用优惠券进行消费.优惠 ...

  4. 2018美团CodeM编程大赛 Round A Problem 2 下棋 【贪心】

    应该一眼看出来是贪心题,然后想最优解是什么.正确的贪心策略是[原棋盘上每个位置的棋子]都往最近的左边[目标棋盘上棋子]移动,如果左边没有棋子了那就闲置最后处理,如果目标棋盘在该位置上也有棋子,那就算距 ...

  5. 牛客网-2018 美团 CodeM 编程大赛-初赛 A 轮

    ACM模版 这场比赛没有晋级,以为没有好好打--我又在找借口.下午去办入职体检,比赛开始时还在回来路上,回到宿舍的时候就剩下半个小时了,签了一下到就没时间了.赛后发现第三题很有意思,就补了补-- 1- ...

  6. 2018美团CodeM编程大赛资格赛第一题

    一.问题描述 题目描述 美团在吃喝玩乐等很多方面都给大家提供了便利.最近又增加了一项新业务:小象生鲜.这是新零售超市,你既可以在线下超市门店选购生鲜食品,也可以在手机App上下单,最快30分钟就配送到 ...

  7. 美团2017年CodeM资格赛题解

    最近想要参加今年的CodeM竞赛,所以把去年的题做了一遍,顺便写个题解,做个记录. 资格赛有A-F,共6道题,资格赛不限时,而且只要完成一道题就可以了. A.数码 题意:给定两个整数 l 和 r ,对 ...

  8. 携程测试编程题:客户下单的时候系统会发放一个优惠券码,用户在前端界面看到的展现形式如下

    今天大四第一节课,下午去上了软件测试的课程,中午乘机在微信读书多看了看关于软件测试的书.下午上课,一边在牛客刷题,一边听讲,状态蛮好的.一个戴眼镜的女老师,讲的还有点意思. 今天新买的古琴也到了,下午 ...

  9. 一周竞赛资讯|CodeM 2018美团点评编程大赛启动

     (本内容转载自公众号"科技与Python") 如今,小程序小游戏已经成为继手游之后,中小游戏企业公认的下一个风口.CodeM是由美团点评主办的编程竞赛,旨在展示和激发软件技术人才 ...

最新文章

  1. 像“毒液”一样的粘液机器人火了,能取出体内异物,穿过1.5mm细缝无压力 | 哈工大港中大...
  2. Magical Sticks 棍子拼接
  3. 解题报告——例题5-5 集合栈计算机 UVa12096
  4. n的阶乘程序python_Python程序对N阶乘的尾随零进行计数
  5. SpringBoot热部署(实战)详解
  6. 不常用,但热门的IOS第三方库(转)
  7. Android应用开发之统计App时长
  8. WinCE设备仿真器+虚拟串口+GPS模拟器搭建开发测试环境
  9. 暗影精灵4 i5-8300H 核显驱动完美触控板声音亮度调节电池电量显示黑苹果EFI引导
  10. vs2008安装失败解决办法
  11. Macbook mac 系统安装 Anaconda的方法
  12. 李白藏头诗鸿蒙,【表白的诗句藏头诗】表白的诗句60句
  13. 解决es集群Yellow与Red的问题
  14. css3绘制的钢琴代码
  15. ThinkPHP5.1.x 框架源码分析之框架的灵魂
  16. 黑洞同样释放能量--霍金修正黑洞理论
  17. java不同时区时间转换,Java在不同时区转换时间
  18. Xcode 工程清理瘦身
  19. 37 篇! Facebook 今年被 CVPR 收录的论文都说了啥?
  20. 一个完整的量化模型包括哪些

热门文章

  1. Verilog——一个简单仲裁器的实现
  2. 基于html的动漫主题-斗破苍穹
  3. Window下python转exe工具
  4. BZOJ 1933 [Shoi2007] Bookcase 书柜的尺寸
  5. 展品牌力量•树行业典范,联诚发一举夺得亮点奖“十大智慧路灯品牌”
  6. Windows Linux Mac OS三大系统
  7. spotify使用教程_如何仅使用Web浏览器收听Spotify
  8. 神经网络详解(基本完成)
  9. C语言之球体自由落体和猴子吃桃算法
  10. iOS开发Swift语言学习教程-欧阳坚-专题视频课程