关于CF5A Chat Server's Outgoing Traffic这道题,我第一次交的WA了,然后删除了两行变成AC,我理解不了为什么会这样,求大佬们解惑 WA:
#include <bits/stdc++.h>
using namespace std;
int count_l(char x[100])
{
int i,loca=100,l=0;
for(i=0;i<strlen(x);i++)
{
if(x[i]==':') loca=i;
if(i>loca) l++;
}
return l;
}
int main()
{
char order[100][100];
int i,line=0,online_members=0,sum_flow=0;
for(i=0;i<100;i++)
{
gets(order[i]);
if(strlen(order[i])!=0) line+=1;
if(strlen(order[i])==0) break;
}
for(i=0;i<line;i++)
{
if(*order[i]=='+') online_members++;
if(*order[i]=='-') online_members--;
if((*order[i]!='-')&&(*order[i]!='+')) sum_flow+=count_l(order[i])*online_members;
}
cout<<sum_flow<<endl;
return 0;
}
AC:
#include <bits/stdc++.h>
using namespace std;
int count_l(char x[100])
{
int i,loca=100,l=0;
for(i=0;i<strlen(x);i++)
{
if(x[i]==':') loca=i;
if(i>loca) l++;
}
return l;
}
int main()
{
char order[100][100];
int i,online_members=0,sum_flow=0;
for(i=0;i<100;i++)
{
gets(order[i]);
if(*order[i]=='+') online_members++;
if(*order[i]=='-') online_members--;
if((*order[i]!='-')&&(*order[i]!='+')) sum_flow+=count_l(order[i])*online_members;
if(*order[i]=='\0') break;
}
cout<<sum_flow<<endl;
return 0;
}