手游大佬(程序无法ac 哪位大佬帮我一下)

手游世界里,如何才能变强呢?
自古以来,强者无非三种:欧皇、肝帝、壕神。
TC在2020年11月29日打开天梯榜,仰望着那一个个大佬,想统计一下他们都是属于哪一类人。
在这个题目里,我们定义:
如果一个玩家注册以来,平均每天的充值金额达到100元,我们认为他属于壕神。
如果一个玩家注册以来,平均每天的在线时长达到12小时,我们认为他属于肝帝。
如果一个玩家不符合以上两个条件,然而他又在天梯榜单上,我们认为这种不肝不氪的人属于欧皇。

输入

输入的第一行是一个正整数N(N≤1000),表示TC总共打算研究N位大佬。
接下来一共N行,每一行描述了一位天梯上的大佬信息。
每一行,首先是一个格式为yyyy-mm-dd的日期,表示该玩家的注册时间,然后是两个整数M(0≤M≤108)和T(0<T≤108),分别表示该玩家的总充值数(单位:元)和总在线时长(单位:分钟)。
保证玩家的注册时间是一个合法的日期,在2000-01-01到2020-11-29范围内。
保证玩家的平均每日在线时长不超过24小时。

输出

对于输入的每一行,输出一行答案。
如果该玩家是欧皇,则输出O
如果该玩家是肝帝但不是壕神,则输出G
如果该玩家是壕神但不是肝帝,则输出H
如果该玩家既是肝帝又是壕神,则输出GH

样例输入
4
2018-04-12 0 100
2017-04-22 100 365000
2018-04-22 1000000 10
2018-03-22 10000 23333

样例输出
O
O
H
O

提示
计算注册以来的总天数时,要计算注册当天以及今天(2020-11-29)。

#include<stdio.h>
#include
using namespace std;
int fun(int yyyy){
if(yyyy%40&&yyyy%100!=0||yyyy%4000)return 29;
else return 28;
}
int main(){
int yyyy,mm,dd,n,m,t,len,day;
cin>>n;
while(n–){
scanf("%d-%d-%d",&yyyy,&mm,&dd);
cin>>m>>t;
day=0;
for(;yyyy<=2020;yyyy++){
len=fun(yyyy);
if(yyyy!=2020){
for(;mm<=12;mm++){
if(mm1||mm3||mm5||mm7||mm8||mm10||mm12)day+=31-dd+1;
else if(mm
2)day+=len-dd+1;
else day+=30-dd+1;}
}
else{
for(;mm<=11;mm++){
if(mm1||mm3||mm5||mm7||mm8||mm10)day+=31-dd+1;
else if(mm2)day+=len-dd+1;
else if(mm
11){day+=29-dd+1;break;}
else day+=30-dd+1;}
}
mm=1;
dd=1;
}
if(m/day>=100&&t/day/60>=12)cout<<“GH”<<endl;
else if(m/day>=100&&t/day/60<12)cout<<“H”<<endl;
else if(m/day<100&&t/day/60>=12)cout<<“G”<<endl;
else cout<<“O”<<endl;
}
}

猜你喜欢

转载自blog.csdn.net/m0_52380556/article/details/114414731