網易牛牛總是睡過頭,所以他定了很多鬧鐘,只有在鬧鐘響的時候他才會醒過來並且決定起不起床。從他起床算起他需要x分鐘到達教室,上課時間為當天的a時b分,請問他最晚可以什麼時間起床
每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示鬧鐘的數量n(n<=100)。
接下來的n行每行包含兩個整數,表示這個鬧鐘響起的時間為hi(0<=a<24)時mi(0<=b<60)分。
接下來的一行包含乙個整數,表示從起床算起他需要x(0<=x<=100)分鐘到達教室。
接下來的一行包含兩個整數,表示上課時間為a(0<=a<24)時b(0<=b<60)分。
資料保證至少有乙個鬧鐘可以讓牛牛及時到達教室
35 0
6 07 0
596 59
輸出兩個整數表示牛牛最晚起床時間。計算出最晚時間6 0
將鬧鐘從晚到早排序
對比最晚時間,得出答案
#include #include #include using namespace std;
pairgetlasttime(int h, int m, int x)
return make_pair(h, m);
}bool cmp(const pair&a, const pair&b)
int main()
int x;
cin>>x;
int h,m;
cin>>h>>m;
sort(clocks.begin(), clocks.end(), cmp);
pairlast = getlasttime(h, m, x);
pairans;
for(int i=0; ilast.first) continue;
if(clocks[i].second>last.second) continue;
ans.first = clocks[i].first;
ans.second = clocks[i].second;
break;
}cout《答案錯誤:您提交的程式沒有通過所有的測試用例
case通過率為80.00%
把時間都轉換為分鐘計數,上課時間-路上時間得到最晚起床時間,把所有鬧鐘時間排序後,二分查詢最晚起床時間。
#include #include #include using namespace std;
bool cmp(const int&a, const int&b)
int x;
cin>>x;
int h,m;
cin>>h>>m;
int time = h*60+m;
sort(clocks.begin(), clocks.end(), cmp);
int last = time - x;
int ans;
for(int i=0; i占用記憶體:508k
2019校招真題程式設計(十)瞌睡
小易覺得高數課太無聊了,決定睡覺。不過他對課上的一些內容挺感興趣,所以希望你在老師講到有趣的部分的時候叫醒他一下。你知道了小易對一堂課每分鐘知識點的感興趣程度,並以分數量化,以及他在這堂課上每分鐘是否會睡著,你可以叫醒他一次,這會使得他在接下來的k分鐘內保持清醒。你需要選擇一種方案最大化小易這堂課聽...
2019校招真題程式設計(五)數對
網易 牛牛以前在老師那裡得到了乙個正整數數對 x,y 牛牛忘記他們具體是多少了。但是牛牛記得老師告訴過他x和y均不大於n,並且x除以y的餘數大於等於k。牛牛希望你能幫他計算一共有多少個可能的數對。輸入包括兩個正整數n,k 1 n 10 5,0 k n 1 對於每個測試用例,輸出乙個正整數表示可能的數...
2019校招真題 數對
牛牛以前在老師那裡得到了乙個正整數數對 x,y 牛牛忘記他們具體是多少了。但是牛牛記得老師告訴過他x和y均不大於n,並且x除以y的餘數大於等於k。牛牛希望你能幫他計算一共有多少個可能的數對。輸入描述 輸入包括兩個正整數n,k 1 n 10 5,0 k n 1 輸出描述 對於每個測試用例,輸出乙個正整...