美团codeM资格赛 优惠券
生活随笔
收集整理的這篇文章主要介紹了
美团codeM资格赛 优惠券
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
優惠券
某次抽查時,發現有硬盤故障,歷史日志中有部分行損壞,這些行的存在是已知的,但是行的內容讀不出來。假設損壞的行可以是任意的優惠券的購買或者使用。
現在問這次抽查中業務是否正確。若有錯,輸出最早出現錯誤的那一行,即求出最大s,使得記錄1到s-1滿足要求;若沒有錯誤,輸出-1。
時間限制: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 解題思路:將所有的問號插入set中并記錄每種優惠券獲得或使用的時間,若不是問號則判斷這次操作后這種優惠券數量是否大于1或小于0,若是,則找這種優惠券上次出現之后的問號是否存在,若存在分兩種情況:若優惠券數量大于1,則優惠券數量減一,否則就加一,若不存在,則該位置出錯
總結
以上是生活随笔為你收集整理的美团codeM资格赛 优惠券的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国内的IT生意,敢问路在何方?
- 下一篇: layer.photos 查看本地图片,