Pagini recente » Cod sursa (job #2136069) | Cod sursa (job #336540) | Cod sursa (job #983756) | Cod sursa (job #1492764) | Cod sursa (job #632476)
Cod sursa(job #632476)
// tm.cpp : Defines the entry point for the console application.
//
#include<list>
#include<fstream>
using namespace std;
int T;
list<int> l;
int valid(char *s){
l.clear();
int stare=1;
for(int i=0;i<strlen(s);i++){
if(s[i]=='a' && (stare==2 || stare==3)) return 0;
if(s[i]=='b' && stare==3) return 0;
if(s[i]=='c' && stare==1) return 0;
if(s[i]=='b' && stare==1) stare=2;
if(s[i]=='c' && stare==2) stare=3;
}
int i=0,more=0;
while(i<strlen(s) && s[i]=='a') {l.push_front(1);i++;}
if(i==strlen(s)) return 1;
else if(s[i]!='b') return 0;
while(i<strlen(s) && s[i]=='b') {
l.push_front(2);
i++;
if(l.back()==1) l.pop_back();
else more=1;
}
if(l.back()==2 && more==0) return 1;
if(i==strlen(s)) return 0;
else if(s[i]!='c') return 0;
while(l.back()!=2) l.pop_back();
more=0;
while(i<strlen(s) && s[i]=='c'){
l.push_front(3);
i++;
if(l.back()==2) l.pop_back();
else more=1;
}
if(l.back()==3 && more==0) return 1;
else return 0;
}
int main()
{
ifstream in("tm.in");
ofstream out("tm.out");
in>>T;
char s[1001];
for(int i=0;i<T;i++){
in>>s;
if(valid(s)) out<<"DA\n";
else out<<"NU\n";
}
in.close();
out.close();
return 0;
}