https://ac.nowcoder.com/acm/contest/554/E
题解:朴素
/* *@Author: STZG *@Language: C++ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#define DEBUG #define RI register int #define endl "\n" using namespace std; typedef long long ll; //typedef __int128 lll; const int N=100000+10; const int M=100000+10; const int MOD=1e9+7; const double PI = acos(-1.0); const double EXP = 1E-8; const int INF = 0x3f3f3f3f; int t,n,m,k,p,l,r,u,v; int ans,cnt,flag,temp,sum; int a,b,c,y; char str; struct node{}; bool check(int y){ return y%4==0&&y%100!=0||y%400==0; } int mo[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; int main() { #ifdef DEBUG freopen("input.in", "r", stdin); //freopen("output.out", "w", stdout); #endif //ios::sync_with_stdio(false); //cin.tie(0); //cout.tie(0); //scanf("%d",&t); //while(t--){ while(~scanf("%d%d%d%d",&a,&b,&c,&y)){ int week=1; int num=1; ans=0; int year,month,day; for(int i=1850;i<=y;i++){ int f=check(i); for(int j=1;j<=12;j++){ num=0; for(int k=1;k<=mo[f][j];k++){ week++; if(week>7) week=1; if(week==c) num++; if(i==y&&j==a&&b==num&&week==c){ ans=1; year=i; month=j; day=k; break; } } } } if(ans){ printf("%d/",year); if(month<10) printf("0%d/",month); else printf("%d/",month); if(day<10) printf("0%d\n",day); else printf("%d\n",day); }else{ cout<<"none"<