luogujisuanji @ 2024-06-20 21:23:47
#include<bits/stdc++.h>
using namespace std;
int main(){
int total[2]={11,21},arry[25*2501],n=0;
char c;
while(true){
cin>>c;
if(c=='E')break;
else if(c=='W')arry[n++]=1;
else arry[n++]=0;
}
for(int i=0;i<2;i++)
{
int w=0,l=0;
for(int j=0;j<n;j++)
{
w+=arry[i];
l+=1-arry[i];
if(max(w,l)>=total[i]&&abs(w-1)>=2)
{
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
}
}
return 0;
}
by silhouettel @ 2024-06-20 23:16:38
@luogujisuanji
两个地方有问题
一是for循环里arry[j]打成了arry[i]
二是输出格式有问题 少了一个空行
by luogujisuanji @ 2024-06-21 20:47:00
@silhouettel 知道了,感谢大佬指导,已关
by luogujisuanji @ 2024-06-21 20:49:51
@silhouettel 但是改了之后还是不对啊
#include<bits/stdc++.h>
using namespace std;
int main(){
int total[2]={11,21},arry[25*2501],n=0;
char c;
while(true){
cin>>c;
if(c=='E')break;
else if(c=='W')arry[n++]=1;
else arry[n++]=0;
}
for(int i=0;i<2;i++)
{
int w=0,l=0;
for(int j=0;j<n;j++)
{
w+=arry[j];
l+=1-arry[j];
if(max(w,l)>=total[i]&&abs(w-1)>=2)
{
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
}
cout<<endl;
}
return 0;
}
by silhouettel @ 2024-06-21 20:53:37
oh 还有一点漏写了
就是说可能最后有一局没有结束 所以循环后要判断w,l是否为0,不为零就输出
by silhouettel @ 2024-06-21 21:03:19
@luogujisuanji
改了一下代码
我前面说的有点问题
不用判是否为零 每一种分制的比赛结束后都要输出w,l
然后你把l打成1了
by silhouettel @ 2024-06-21 21:03:34
#include<bits/stdc++.h>
using namespace std;
int main(){
int total[2]={11,21},arry[25*3001],n=0;
char c;
while(true){
cin>>c;
if(c=='E')break;
else if(c=='W')arry[n++]=1;
else arry[n++]=0;
}
for(int i=0;i<2;i++)
{
int w=0,l=0;
for(int j=0;j<n;j++)
{
w+=arry[j];
l+=1-arry[j];
if(max(w,l)>=total[i]&&abs(w-l)>=2)
{
cout<<w<<":"<<l<<endl;
w=0;
l=0;
}
}
cout << w << ':' << l << endl;
cout<<endl;
}
return 0;
}
by silhouettel @ 2024-06-21 21:04:38
挺抱歉的 没能一次解决
by luogujisuanji @ 2024-06-22 08:44:44
@sihouettel 没事,我再调一调,帮我解决一部分也算帮了忙啊
by silhouettel @ 2024-06-22 12:20:05
@luogujisuanji 我发的那一份改过的代码是可以过的
by luogujisuanji @ 2024-06-23 18:55:24
@sihouettel AC了,谢谢大佬