#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int i, j, k, t, Cas;
int n, m;
char a[110],b[101],c[101];
int d[300];
while( scanf( "%d%s%s", &n, a, b )!=-1 )
{
k=i=j=0;
int top=-1;
while( b[j] && i<n )
{
d[k++]=1;
c[++top]=a[i++];
while( c[top]==b[j] && top>=0 )
{
d[k++]=0;
top--;
j++;
}
}
if( j!=n )
printf( "No.\nFINISH\n" );
else
{
printf( "Yes.\n" );
for( i=0;i<k;i++ )
{
if( d[i] )
puts( "in" );
else
puts( "out" );
}
printf( "FINISH\n" );
}
}
return 0;
}
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int i, j, k, t, Cas;
int n, m;
char a[110],b[101],c[101];
int d[300];
while( scanf( "%d%s%s", &n, a, b )!=-1 )
{
k=i=j=0;
int top=-1;
while( b[j] && i<n )
{
if( a[i]!=b[j] )
{
c[++top]=a[i++];
d[k++]=1;
}
else
{
d[k++]=1;
c[++top]=a[i++];
while( c[top]==b[j] && top>=0 )
{
d[k++]=0;
top--;
j++;
}
}
}
if( top!=-1 )
printf( "No.\nFINISH\n" );
else
{
printf( "Yes.\n" );
for( i=0;i<k;i++ )
{
if( d[i] )
puts( "in" );
else
puts( "out" );
}
printf( "FINISH\n" );
}
}
return 0;
}
wrong 代码
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int i, j, k, t, Cas;
int n, m;
char a[110],b[101],c[101];
int d[300];
while( scanf( "%d%s%s", &n, a, b )!=-1 )
{
k=i=j=0;
int top=-1;
while( b[j] && i<n )
{
if( a[i]!=b[j] )
{
c[++top]=a[i++];
d[k++]=1;
}
else
{
d[k++]=1;
c[++top]=a[i++];
while( c[top]==b[j] && top>=0 )
{
d[k++]=0;
top--;
j++;
}
if( top!=-1 )//( 5 12345 43521 )
break;
}
}
if( top!=-1 )
printf( "No.\nFINISH\n" );
else
{
printf( "Yes.\n" );
for( i=0;i<k;i++ )
{
if( d[i] )
puts( "in" );
else
puts( "out" );
}
printf( "FINISH\n" );
}
}
return 0;
}