C++50分求助

P1042 [NOIP2003 普及组] 乒乓球

@[gjt6733](/user/972155) 自己按照这个写一遍 ```cpp #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define eps 1e-6 using namespace std; #define clr(x) memset(x,0,sizeof((x))) const int maxn = 1e4+1;//2e6+1 #define MAX(a,b,c) ((a)>(b)?((a)>(c)?(a):(c)):((b)>(c)?(b):(c))) #define _max(a,b) ((a) > (b) ? (a) : (b)) #define _min(a,b) ((a) < (b) ? (a) : (b)) #define _for(a,b,c) for(int a = b;a<c;a++) int readchar() { int ch; for(;;) { ch = getchar(); if(ch!='\n'&&ch!='\r')return ch; } } int main() { #ifdef LOCAL freopen("data.in","r",stdin); freopen("data.out","w",stdout); #endif int ch,wn = 0,ln = 0;//wn,ln表示11分制比分 int a = 0,b = 0,i=0;//a,b表示21分制比分 int r[maxn]; clr(r); while((ch = readchar())!=EOF&&ch!='E') { if(ch == 'W'){ wn++;a++;} else { ln++; b++;} if((wn>=11||ln>=11)&&abs(wn-ln)>=2) { printf("%d:%d\n",wn,ln); wn = 0; ln = 0; } if((a >= 21 || b>=21) && abs(a-b)>=2) { r[i] = a; r[i+1] = b; i+=2; a = 0; b = 0; } } printf("%d:%d\n\n",wn,ln); for(int j = 0;j<i;j+=2) { printf("%d:%d\n",r[j],r[j+1]); } printf("%d:%d",a,b); return 0; } ```
by Kimi_0406 @ 2023-08-20 15:15:39


@[Kimi_0406](/user/1067870) 感谢
by gjt6733 @ 2023-12-27 22:01:50


|