秋夜Dx @ 2021-01-19 00:08:06
求大神解救Orz…… 没有使用gets( ),也没什么特别的地方……就是笨方法,一个字符一个字符地处理,最后输出结果。在本地测试正确,但总是全WA……
#include <cstdio> //P1320 压缩技术(续集版)
int main() {
int N=0;
int i=0,i_s=1;
char ch,last;
int str[10000]={0};
while(scanf("%c",&ch)!=EOF)
{
if(ch!='\n')
N++;
else
{
str[0]=N;
break;
}
if(i==0)
{
if(ch=='1')
{
i++;
str[i_s]=0;
i_s++;
last=ch;
continue;
}
else
{
last=ch;
i++;
continue;
}
}
else
{
if(last==ch)
{
i++;
continue;
}
else
{
str[i_s]=i;
i_s++;
i=1;
last=ch;
continue;
}
}
}
while(scanf("%c",&ch)!=EOF)
{
if(ch=='\n')
continue;
if(i==0)
{
last=ch;
i++;
continue;
}
else
{
if(last==ch)
{
i++;
continue;
}
else
{
str[i_s]=i;
i_s++;
i=1;
last=ch;
continue;
}
}
}
str[i_s]=i;
for(int j=0;j<i_s;j++)
printf("%d ",str[j]);
printf("%d",str[i_s]);
return 0;
}
by 秋夜Dx @ 2021-01-19 00:15:32
楼主已经解决了…… 原来是Linux评测机换行不是\n的问题…… 把所有的=='\n'换成!='0' && !='1'即可AC……