Pagini recente » Cod sursa (job #3127072) | Cod sursa (job #180890) | Cod sursa (job #1598839) | Cod sursa (job #1033419) | Cod sursa (job #983400)
Cod sursa(job #983400)
#include <fstream>
#define MAXN 50005
using namespace std;
ifstream f("nivele.in");
ofstream g("nivele.out");
int t,i,n,a[MAXN],act,lvl;
bool dr[MAXN];
bool verifica(bool st);
int main()
{
f>>t;
while(t--){
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
for(i=1;i<=n;i++)
dr[i]=0;
act=1;
if(a[1]>n){
g<<"NU\n";
continue;}
if(verifica(1))
g<<"DA\n";
else
g<<"NU\n";}
f.close();
g.close();
return 0;
}
bool verifica(bool st){
int i;
act++;
if(a[act]>n)
return 0;
if(act==n+1){
for(i=2;i<=a[act-1];i++)
if(!dr[i])
return 0;
return 1;}
if(st){
if(a[act]==a[act-1]){
dr[a[act]]=1;
return verifica(0);}
else{
dr[a[act-1]]=1;
return verifica(1);}}
for(i=a[act-1];dr[i];i--)
dr[i]=0;
dr[i]=1;
if(a[act]==i)
return verifica(0);
else
return verifica(1);}