牛牛的闹钟

Posted Kiven#5197

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛牛的闹钟相关的知识,希望对你有一定的参考价值。

题目:

牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要X分钟到达教室,上课时间为当天的AB分,请问他最晚可以什么时间起床

输入描述:

每个输入包含一个测试用例。 
每个测试用例的第一行包含一个正整数,表示闹钟的数量N。 
接下来的N行每行包含两个整数,表示这个闹钟响起的时间为分。 
接下来的一行包含一个整数,表示从起床算起他需要分钟到达教室。 
接下来的一行包含两个整数,表示上课时间为时分。 
数据保证至少有一个闹钟可以让牛牛及时到达教室。

输出描述:

输出两个整数表示牛牛最晚起床时间。

样例:

in:
3 
5 0 
6 0 
7 0 
59 
6 59

out:
6 0

 

注意到校时间-x后的处理即可。

 

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 struct node{
 5     int a,b;
 6 }a[110],temp,res;
 7 
 8 int cmp(node a,node b){
 9     if(a.a==b.a)
10     return a.b<b.b;
11     else
12     return a.a<b.a;
13 }
14 
15 int main(){
16     int n,t;
17     cin>>n;
18     for(int i=0;i<n;i++){
19         cin>>a[i].a>>a[i].b;
20     }
21     cin>>t;
22     cin>>temp.a>>temp.b;
23     sort(a,a+n,cmp);
24     temp.b-=t;
25     if(temp.b<0){
26         int x=0-temp.b;
27         temp.a-=x/60+1;
28         temp.b=60-x%60;
29     }
30     //cout<<temp.a<<" "<<temp.b<<endl;
31     for(int i=n-1;i>=0;i--){
32         if(a[i].a<temp.a||a[i].a==temp.a&&a[i].b<=temp.b){
33             cout<<a[i].a<<" "<<a[i].b<<endl;
34             break;
35         }
36     }
37     return 0;
38 }

 

以上是关于牛牛的闹钟的主要内容,如果未能解决你的问题,请参考以下文章

牛牛的背包问题

牛牛的猜球游戏(动态规划+前缀影响)

谈谈Google与微信H5牛牛的Java开发规范

十三水,十三张,斗地主,牛牛的牌型搜索思考

牛牛的数列 最长递增子序列

牛客 - 牛牛的最大兴趣组(思维+数论)