Pagini recente » Cod sursa (job #2455684) | Cod sursa (job #2977433) | Cod sursa (job #2477983) | Cod sursa (job #983836) | Cod sursa (job #638872)
Cod sursa(job #638872)
#include <stdio.h>
int valid( char* banda ){
int i = 0 , test = 1 ;
// Apartenenta la a*b*c*
while( banda[ ++i ]=='a' ) ; --i ;
while( banda[ ++i ]=='b' ) ; --i ;
while( banda[ ++i ]=='c' ) ;
if( banda[ i ] ) return 0 ;
i = 1 ;
// |a|==|b| Verificare
while( banda[ i ]=='a' ){
banda[ i ]='A' ;
while( banda[ ++i ]=='a' ) ; --i ;
while( banda[ ++i ]=='B' ) ;
if( banda[ i ]=='b' ) banda[ i ]='B' ;
else {
while( banda[ --i ]=='B' ) banda[ i ]='b' ; ++i ;
goto party ;
}
while( banda[ --i ]=='B' ) ; ++i ;
while( banda[ --i ]=='a' ) ; ++i ;
}
--i ; while( banda[ ++i ]=='B' ) ;
if( banda[ i ] != 'b' ) return 1 ;
else while( banda[ --i ]=='B' ) banda[ i ]='b' ; ++i ;
// |b|==|c| Verificare
party:
while( banda[ i ]=='b' ){
banda[ i ]='B' ;
while( banda[ ++i ]=='b' ) ; --i ;
while( banda[ ++i ]=='C' ) ;
if( banda[ i ]=='c' ) banda[ i ]='C' ;
else return 0 ;
while( banda[ --i ]=='C' ) ; ++i ;
while( banda[ --i ]=='b' ) ; ++i ;
}
--i ; while( banda[ ++i ]=='C' ) ;
return banda[ i ]==0 ;
}
int main( ) {
freopen( "tm.in" , "r" , stdin ) ;
freopen( "tm.out" , "w" , stdout ) ;
char banda[ 1002 ] ; int T , i ;
banda[0] = 'S' ;
scanf( "%d" , &T ) ;
for ( i = 0 ; i < T ; ++i ){
scanf( "%s" , banda+1 ) ;
if( valid( banda ) ) printf( "DA\n" ) ;
else printf( "NU\n" ) ;
}
return 0 ;
}