2019校招真題程式設計(七)牛牛的鬧鐘

2021-10-02 10:45:55 字數 1486 閱讀 3049

網易牛牛總是睡過頭,所以他定了很多鬧鐘,只有在鬧鐘響的時候他才會醒過來並且決定起不起床。從他起床算起他需要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 輸出描述 對於每個測試用例,輸出乙個正整...