首页 > 其他分享 >CF Everyone Loves to Sleep 每个人都喜欢睡觉

CF Everyone Loves to Sleep 每个人都喜欢睡觉

时间:2024-05-26 11:58:59浏览次数:21  
标签:Vlad 13 Everyone 59 23 CF 12 Loves time

我这个蒟蒻又来做CF了

我做的是

“Everyone Loves to Sleep”

“每个人都喜欢睡觉”

Vlad, like everyone else, loves to sleep very much.

Every day Vlad has to do  n things, each at a certain time. For each of these things, he has an alarm

clock set, the  i -th of them is triggered on ℎ hi​ hours  mi​ minutes every day  (hi​<24,0≤mi​<60 ).

Vlad uses the 2424 -hour time format, so after ℎ=12,m=59;h=12,m=59 comes ℎ=13,m=0h=13,m=0 and after ℎ=23,m=59;h=23,m=59 comes ℎ=0,m=0.

This time Vlad went to bed at H hours M minutes ( 0≤H<24,0≤M<60 ) and asks you to answer: how much he will be able to sleep until the next alarm clock.

If any alarm clock rings at the time when he went to bed, then he will sleep for a period of time of length 0.

Vlad和其他人一样,非常喜欢睡觉。

Vlad每天都要做 n 件事,每件事在特定时间。对于这些事情中的每一件,他都定了一个闹钟,其中第 i 个在 hi​ 时 mi​ 分被触发(0≤ℎ<24,0≤m<60)。

Vlad使用24小时时间格式,所以12:59之后是13:00,23:59后是00:00。

Vlad在H时M分睡觉(0≤n<24,0≤m<60)。

他要你回答:在下一个闹钟响之前,他能睡多久。

如果在他上床睡觉的时候有任何闹钟响起,那么他将睡0小时0分钟。

输入样例:

3
1 6 13
8 0
3 6 0
12 30
14 45
6 0
2 23 35
20 15
10 30

输出样例:

1 47
0 0
10 55

代码:

#include<bits/stdc++.h>
using namespace std;
int t,n,h,m,h1,m1,anst;
int main(){
	cin >> t;
	while(t--){ // 非0的都是true
		cin >> n >> h >> m;// 闹钟,小时,分钟
		int t1,t2,anst=0,minn=1e9,f=0;
		t1 = h*60+m;//现在睡的时间
		for(int i=1;i<=n;i++){
			cin >> h1 >> m1;
			t2 = h1*60 + m1;
			if(t1<t2) //当天醒了
				anst = t2 - t1;
			else if(t1>t2){//隔天醒 
				anst = 24*60-t1+t2;
			}else f = 1;
			minn = min(minn,anst); 
		}
		if(f) cout << "0 0\n";//\n换行
		else cout << minn/60 << " " << minn%60 << endl; 
	} 
	return 0;//完结撒花
}

标签:Vlad,13,Everyone,59,23,CF,12,Loves,time
From: https://blog.csdn.net/2401_85107998/article/details/139182548

相关文章

  • 题解:CF1119D Frets On Fire
    大水题。首先,若区间内只有一根弦,不会对答案有贡献。我们思考如何对答案产生贡献。我们知道,对于每一个\(s_i\),都会产生一段\(s_i+r-l\)的连续序列,在对\(s\)数组排序后,若每个\(s_i+r-l\ges_{i+1}\)则答案为\(s_n+r-(s_1+l)+1\)。若够不到下一位呢?我们在\(s_n+r-(s_1+l......
  • 题解【CF798D Mike and distribution】
    题目链接思考方向:构造方法满足\(A\)的要求,再满足\(B\)的要求。如果只考虑\(A\),有一种显然的方案:将\(A\)从大到小排序,选出前\(\left\lfloor\frac{n}{2}\right\rfloor+1\)大的即可。但这样显然难以扩展,所以需要另寻方案。由于题目提供了额外的\(+1\),所以先将最大的......
  • CF1141E Superhero Battle 题解
    题目传送门简化题意给定\(H,n\)和一个长度为\(n\)的序列\(d\),求一个最小的\(m\)使得\(H+\sum\limits_{i=1}^{m}d_{(i-1)\bmodn+1}\le0\)。解法将式子移项后得到\(\sum\limits_{i=1}^{m}-d_{(i-1)\bmodn+1}\geH\)。将\(\sum\limits_{i=1}^{m}-d_{(i-1)\bmo......
  • 区块链论文总结速读--CCF A会议 USENIX Security 2024 共7篇 附pdf下载
    Conference:33rdUSENIXSecuritySymposiumCCFlevel:CCFACategories:网络与信息安全Year:2024Num:71Title: PracticalSecurityAnalysisofZero-KnowledgeProofCircuits零知识证明电路的实用安全分析Authors: HongboWen, UniversityofCalifornia,Santa......
  • 【csp202403-1】词频统计【第33次CCF计算机软件能力认证】
    问题描述在学习了文本处理后,小P对英语书中的......
  • [CF1517F] Union
    计数好题。关键点在于一步转化,然而我并没有发现。首先期望转计数,对于这类问题,我们有很经典的处理手法:\(\sum_r\sum_S[f(S)=r]r=\sum_r\sum_S[f(S)\ger]\)。但是我并没有发现这一步的意义。事实上,这个条件写到树上就是,存在一个点,使得离它最近的非空闲点距离\(>r\)。然后就可......
  • 线段树维护区间字符的两道例题(CF240F CF558E)
    CF240F:https://www.luogu.com.cn/problem/CF240F题目大意:给定一个长为n的由a到z组成的字符串,有m次操作,每次操作将[l,r]的字符串进行重排,得到字典序最小的字符串,输出m次操作后的字符串。大致思路:1.首先我们要想区间内的字典序最小的回文串要怎么构造。回文串无非就两种类型:有一......
  • CF1973F Maximum GCD Sum Queries 题解
    题目链接点击打开链接题目解法首先想到枚举两个数列的$\gcd$,求最小代价两个数列的\(\gcd\)应该分别是\(a_1,b_1\)的因数或\(b_1,a_1\)的因数这样就把枚举范围缩小到了\(d(a_1)\timesd(b_1)\),这求最小代价需要\(O(n)\),不够快假设枚举的\(\gcd\)分别为\(x,y\)......
  • CF1909I Short Permutation Problem 题解
    这是一道*1900的黑。考虑枚举\(m\),将\(<\fracm2\)和\(\ge\fracm2\)的数分开讨论。考虑相邻两个数\(a,b\(a>b)\)分别在\(\fracm2\)的两侧,则有\(b\gem-a\)。考虑将所有数按某种方法从小到大排序,以\(\min(x,m-x)\)为第一关键字,\(-x\)为第二关键字,则排列中......
  • CCF-CSP认证 2024年3月 4.化学方程式配平
    题解:首先完成数据的读入,然后高斯消元求秩按题意解即可#pragmaGCCoptimize(2,3,"Ofast","inline")#include<bits/stdc++.h>usingnamespacestd;constintmaxn=100;usingmatrix=double[maxn][maxn];usingvect=array<double,maxn>;constdoub......