http://codeforces.com/problemset/problem/39/J
仔细想想哪种情况可以去掉一个字母就可以了,
注意如果循环里写strlen()的话会超时,要写在外面
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char a[1111111];
char b[1111111];
int main(){
int flag=0;
while(cin>>a>>b)
{
int st;
int ed;
int flag1=0;
int l=strlen(a);
flag=0;
for(int i=0;i<l;i++)
{
if(i==l-1&&flag==0)
{
st=ed=l-1;
while(st-1>=0&&a[st-1]==a[i])
{
st--;
}
continue;
}
if(b[i-flag]!=a[i]&&flag==1)
{
//cout<<a[i-flag]<<" "<<b[i]<<endl;
cout<<"0"<<endl;
flag1=1;
break;
}
if(b[i-flag]==a[i])
continue;
if(b[i-flag]!=a[i]&&flag==0)
{
st=ed=i;
while(st-1>=0&&a[st-1]==a[i])
{
st--;
}
flag=1;
}
}
if(flag1==0)
{
int q=0;
//cout<<ed<<" "<<st<<endl;
cout<<ed-st+1<<endl;
for(int i=st;i<=ed;i++)
{
if(q++)
cout<<" ";
cout<<i+1;
}
cout<<endl;
}
}
return 0;
}