讨论 / 求大神搭救T.T,为什么6、 7超时呀?
笑靥 2016-09-08 19:13:44
点我顶贴 收藏 删除
#include<stdio.h>

#include<string>

#include<string.h>

using namespace std;

string e[1000];

int main()

{

char str[21];

int k=0;

while(1)

{

scanf("%s",str);

e[k]=str;

int t=e[k].find('E',0);

k++;

if(t!=string::npos) break;

}

int w=0,l=0;

int flag=0;

for(int i=0;i<k;i++)

{

for(int j=0;j<e[i].size();j++)

{

if(e[i][j]=='W') w++;

if(e[i][j]=='L') l++;

if((w==11&&l<=9)||(w>11&&w-l==2))

{

printf("%d:%d\n",w,l);

w=0;

l=0;

}

if((l==11&&w<=9)||(l>11&&l-w==2))

{

printf("%d:%d\n",w,l);

w=0;

l=0;

}

if(e[i][j]=='E')

{

printf("%d:%d\n",w,l);

flag=1;

break;

}

}

if(flag==1) break;

}

printf("\n");

flag=0;

w=0;l=0;

for(int i=0;i<k;i++)

{

for(int j=0;j<e[i].size();j++)

{

if((w==21&&l<=19)||(w>21&&w-l==2))

{

printf("%d:%d\n",w,l);

w=0;

l=0;

}

if((l==21&&w<=19)||(l>21&&l-w==2))

{

printf("%d:%d\n",w,l);

w=0;

l=0;

}

if(e[i][j]=='E')

{

printf("%d:%d\n",w,l);

flag=1;

break;

}

if(e[i][j]=='W') w++;

if(e[i][j]=='L') l++;

}

if(flag==1) break;

}

return 0;

}

#1 笑靥@2016-09-08 19:21:50
回复 删除
看了一下测试数据,发现输入有1001行全L,string数组太小了,改成10000AC了
查看更多回复
提交回复