Pagini recente » Cod sursa (job #247915) | Cod sursa (job #198286) | Cod sursa (job #1110613) | Cod sursa (job #2553610) | Cod sursa (job #638860)
Cod sursa(job #638860)
#include <stdio.h>
int valid( char* banda ){
int i = 0 , test = 1 ;
/**
* Testez 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 ;
/**
* Testez daca |a|==|b|
*/
while( banda[ i ]=='a' ){
banda[ i ]='A' ;
while( banda[ ++i ]=='a' ) ;
while( banda[ i ]=='B' ) ++i ;
if( banda[ i ]=='b' ) banda[ i ]='B' ;
else {
test = 0 ;
while( banda[ --i ]=='B' ) banda[ i ]='b' ;
++i ;
break ;
}
while( banda[ --i ]=='B' ) ;
while( banda[ i ]=='a' ) --i ;
++i ;
}
if( test ) {
while( banda[ i ]=='B' ) ++i ;
if( banda[ i ] != 'b' ) return 1 ;
else while( banda[ --i ]=='B' ) banda[ i ]='b' ;
++i ;
}
/**
* Testez daca |b|==|c|
*/
while( banda[ i ]=='b' ){
banda[ i ]='B' ;
while( banda[ ++i ]=='b' ) ;
while( banda[ i ]=='C' ) ++i ;
if( banda[ i ]=='c' ) banda[ i ]='C' ;
else return 0 ;
while( banda[ --i ]=='C' ) ;
while( banda[ i ]=='b' ) --i ;
++i ;
}
while( banda[ i ]=='C' ) ++i ;
return banda[ i ]==0 ;
}
int main( ) {
freopen( "tm.in" , "r" , stdin ) ;
freopen( "tm.out" , "w" , stdout ) ;
char banda[ 1002 ] ;
int T ;
banda[0] = 'S' ;
scanf( "%d" , &T ) ;
int i ;
for ( i = 0 ; i < T ; ++i ){
scanf( "%s" , banda+1 ) ;
if( valid( banda ) ) printf( "DA\n" ) ;
else printf( "NU\n" ) ;
}
}