椰奶国
#include <iostream> using namespace std; long long calc(int x,int y,int z) { long long sum = 0,seconds = 0; for(int i = 0;i<x;i++){ seconds += i*10+1; sum += seconds; } for(int i = 0;i<y;i++){ sum += 10*i+1; } return sum+z; } int main(){ int t; cin>>t; long long n,a,b,c,e,f,g; for(int i = 1;i<=t;i++){ cin>>n>>a>>b>>c>>e>>f>>g; long long s1 = calc(a,b,c); long long s2 = calc(e,f,g); long long s3 = calc(n,0,0); if(s1<=s2){ cout<<s2-s1<<endl; }else{ cout<<s2+s3-s1<<endl; } } return 0; }
题目描述
椰奶国的一天共有 n 个小时。第 i 个小时(0≤i<n)共有 i+1 分钟,第 i 个小时的第 j 分钟(0≤j≤i)共有 10j+1 秒。
注意,这里小时、分钟、秒数都是从 00 起计数。
现在,给出起始时刻 t1=A:B:C,表示 t1 时刻是 A 时 B 分 C 秒,和结束时刻 t2=E:F:G,表示 t2 时刻是 E 时 F 分 G 秒。
已知时刻 t2 的时刻不早于 t1 的时刻,且二者时间间隔小于一天。
请你求出 t1 和 t2 之间经过了多少秒。
输入格式
本题单个测试点内有多组测试数据。第一行是一个整数,表示数据组数 T。
接下来 T 行,每行七个整数,依次表示一组数据的n,A,B,C,E,F,G。
输出格式
对每组数据,输出一行一个整数表示答案。
输入输出样例 #1
输入 #1
1
10 3 2 11 3 3 0
输出 #1
10
输入输出样例 #2
输入 #1
1
2 1 1 3 0 0 0
输出 #2
8
说明/提示
样例 2 解释
椰奶国一天有 22 小时,即第 00 小时和第 11 小时,第 11 小时有 22 分钟,即第 00 分钟和第 11 分钟。第 11 分钟有 10×1+1=1110×1+1=11 秒。在第 11 小时第 11 分钟第 33 秒起,接下来经过的时刻是第 4,5,6,7,8,9,10,04,5,6,7,8,9,10,0 秒(其中最后一秒是下一天的第一秒),共八秒。
数据规模与约定
- 对 30%30% 的数据,t2 代表的时刻在一天中不早于 t1 时刻。
- 对 60%60% 的数据,n≤50,保证单个测试点内的答案之和不超过 108108。
- 对 100%100% 的数据,1≤T≤5×103,1≤n≤105,0≤B≤A<n,C≤10B。0≤F≤E<n,G≤10E,保证单个测试点内的 n 之和不超过 1.5×1081.5×108。

浙公网安备 33010602011771号