新手启示者
给出同一闰年中的两个日期,分别用两个四位数表示。用四位数表示日期的方法如下——如0823表示8月23日;1205表示12月5日。
现在请判断给出的两个日期之间相隔天数是否超过100天,如果是,则输出“YES",否则输出”NO"。相邻两个日期的相隔天数为1天。
输入描述 Input Description
有多组输入数据。
第一行一个整数k,表示数据的组数;
接下来k行,每行两个四位数x,y,用空格隔开,表示每组的两个日期。
输出描述 Output Description
共k行,每行输出一个“YES”或“NO”(没有引号)
样例输入 Sample Input
2 0823 0923 0123 1223
样例输出 Sample Output
NO YES
数据范围及提示 Data Size & Hint
日期总是合法的;
每行的两个日期不一定是递增的。
对100%的数据,k<2100.
中级启示者
一点提示(mon数组储存每月天数)
int day=mon[m1]-d1+d2;//余下天数
for(int i=m1+1;i<m2;i++){
day+=mon[i];//整月天数
}
资深光能
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i];
for(int i=1;i<=n;i++){
int date1=max(a[i],b[i]),date2=min(a[i],b[i]),sum=0;
while(sum<=100 && date2<=1231){
sum++;
date2++;
if(date2%100>month[date2/100]){
date2-=month[date2/100];
date2+=100;
}
}
if(date1<date2 || sum<100) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
}
AC!
中级启示者
日期模拟题,算出两个日期之间的完整月份的天数(提示,用一个数组存储每个月的天数),在算出余下天数
如果结果>100 输出YES
else cout<<"NO"
新手启示者
- #include <iostream>
- #include <cmath>
- #pragma GCC optimize(3)
- using namespace std;
- int k,x[1000000],y[1000000];
- int main(){
- cin>>k;
- for(int i=1;i<=k;i++){
- cin>>x[i]>>y[i];
- if(abs(x[i]-y[i])>100){
- cout<<"YES"<<endl;
- }else{
- cout<<"NO"<<endl;
- }
- }
- return 0;
- }
- ??????????????
新手启示者
#include <iostream>
#include <cmath>
#pragma GCC optimize(3)
using namespace std;
int a[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int k,x[1000000],y[1000000],b[1000000],c[1000000];
int main(){
int day[1000000];
cin>>k;
for(int i=1;i<=k;i++){
cin>>x[i]>>y[i];
b[i]=min(x[i],y[i]);
c[i]=max(x[i],y[i]);
day[i]=a[b[i]/1000*10+b[i]/100%10]-(b[i]%100/10*10+b[i]%10);
day[i]+=a[c[i]/1000*10+c[i]/100%10]-(c[i]%100/10*10+c[i]%10);
for(int j=b[i]/1000*10+b[i]/100%10+1;j<c[i]/1000*10+c[i]/100%10;j++){
day[i]+=a[j];
}
if(day[i]>100){
cout<<"YES\n";
}else{
cout<<"NO\n";
}
}
return 0;
}