两种方法,为什么一个会T,一个不会

P1202 [USACO1.1] 黑色星期五Friday the Thirteenth

```cpp #include"bits/stdc++.h" using namespace std; inline int read() { int x=0,f=1; char c=getchar(); for(; !isdigit(c); c=getchar()) if(c=='-') f=-1; for(; isdigit(c); c=getchar()) x=x*10+c-'0'; return x*f; } int data[7]={0,0,0,0,0,0}; int n; int num=1; int k; inline void init() { for(int i=1; i<=n; i++) data[i]=0; } int main(void) { cin>>n; //n=read(); //init(); for(int i=1900; i<=1900+n-1; i++) { if((i%100==0) && (i%400==0)) { for(int j=1; j<=12; j++) { if((j==1) || (j==3) || (j==5) || (j==7) || (j==8) || (j==10) || (j==12)) { for(k=1; k<=31; k++) { k=1; if(num==7) { num=1; goto a; } num++; a: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if((j==4) || (j==6) || (j==9) || (j==11)) { k=1; for(k=1; k<=30; k++) { if(num==7) { num=1; goto b; } num++; b: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if(j==2) { k=1; for(k=1; k<=29; k++) { if(num==7) { num=1; goto c; } num++; c: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } } } else if((i%100==0) && (i%400!=0)) { for(int j=1; j<=12; j++) { if((j==1) || (j==3) || (j==5) || (j==7) || (j==8) || (j==10) || (j==12)) { k=1; for(k=1; k<=31; k++) { if(num==7) { num=1; goto d; } num++; d: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if((j==4) || (j==6) || (j==9) || (j==11)) { k=1; for(k=1; k<=30; k++) { if(num==7) { num=1; goto f; } num++; f: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if(j==2) { k=1; for(k=1; k<=28; k++) { if(num==7) { num=1; goto g; } num++; g: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } } } else if(i%4==0) { for(int j=1; j<=12; j++) { if((j==1) || (j==3) || (j==5) || (j==7) || (j==8) || (j==10) || (j==12)) { k=1; for(k=1; k<=31; k++) { if(num==7) { num=1; goto h; } num++; h: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if((j==4) || (j==6) || (j==9) || (j==11)) { k=1; for(k=1; k<=30; k++) { if(num==7) { num=1; goto l; } num++; l: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if(j==2) { k=1; for(k=1; k<=29; k++) { if(num==7) { num=1; goto m; } num++; m: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } } } else if(i%4!=0) { for(int j=1; j<=12; j++) { if((j==1) || (j==3) || (j==5) || (j==7) || (j==8) || (j==10) || (j==12)) { k=1; for(k=1; k<=31; k++) { if(num==7) { num=1; goto o; } num++; o: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if((j==4) || (j==6) || (j==9) || (j==11)) { k=1; for(k=1; k<=30; k++) { if(num==7) { num=1; goto e; } num++; e: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } else if(j==2) { k=1; for(k=1; k<=28; k++) { if(num==7) { num=1; goto p; } num++; p: if(k==13) { if(num==1) { data[1]++; continue; } if(num==2) { data[2]++; continue; } if(num==3) { data[3]++; continue; } if(num==4) { data[4]++; continue; } if(num==5) { data[5]++; continue; } if(num==6) { data[0]++; continue; } if(num==7) { data[6]++; continue; } } } } } } } for(int i=0; i<=6; i++) { cout<<data[i]<<' '; } return 0; } ```
by Mono_pigsicklie @ 2019-05-10 08:37:28


上面这个会T
by Mono_pigsicklie @ 2019-05-10 08:37:56


```cpp #include"bits/stdc++.h" using namespace std; int data[7]= {0,0,0,0,0,0}; int n; int num=1; int k; inline bool judge(int x) { if((x == 1900) || (x == 2000) || (x == 2100) || (x == 2200) || (x == 2300) || (x == 2400) || (x == 2500)) { if(x % 400 == 0) { return true; } } else if(x % 4 == 0) { return true; } return false; } int main(void) { scanf("%d",&n); for(int i=1900; i<=1900+n-1; i++) { if(judge(i)==true) { for(int j=1; j<=12; j++) { for(k=0; k<31; k++) {//1 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<29; k++) {//2 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//3 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//4 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//5 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//6 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//7 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//8 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//9 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//10 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//11 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//12 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } } } else { for(int j=1; j<=12; j++) { for(k=0; k<31; k++) {//1 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<29; k++) {//2 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//3 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//4 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//5 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//6 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//7 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//8 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//9 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//10 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<30; k++) {//11 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } for(k=0; k<31; k++) {//12 if(k==13) { if(num==1) { data[1]++; continue; } else if(num==2) { data[2]++; continue; } else if(num==3) { data[3]++; continue; } else if(num==4) { data[4]++; continue; } else if(num==5) { data[5]++; continue; } else if(num==6) { data[0]++; continue; } else if(num==7) { data[6]++; continue; } } num++; if(num==7) { num=1; } } } } } for(int i=0; i<7; i++) printf("%d ",data[i]); return 0; } ```
by Mono_pigsicklie @ 2019-05-10 08:38:16


这个不会,会WA
by Mono_pigsicklie @ 2019-05-10 08:38:40


Orz怎么给你写出来的
by 两年打铁 @ 2019-05-10 09:26:34


您这个代码为什么这么长啊Orz
by qwaszx @ 2019-05-10 09:32:11


您这个代码给谁看啊/捂脸
by Luvwgyx @ 2019-05-10 09:33:32


tql
by 废物yehan @ 2019-07-24 14:30:50


|