Pagini recente » Cod sursa (job #2632324) | Cod sursa (job #1062829) | Cod sursa (job #26564) | Cod sursa (job #2424971) | Cod sursa (job #137751)
Cod sursa(job #137751)
#include <cstdio>
using namespace std;
const char iname[] = "nivele.in";
const char oname[] = "nivele.out";
#define MAXN 50005
FILE *fi;
int n;
int X[MAXN];
bool sol;
void work(int i)
{
while (i > 1)
{
while (i > 1 && X[i - 1] == X[i])
X[i - 1] --, i --;
if (i == 1)
return ;
int j = i - 1;
while (j > 1 && X[j - 1] == X[j])
X[j - 1] --, j --;
if (X[i] != X[j]) {
sol = false;
return ;
} else
X[j] --, i = j;
}
}
int main(void)
{
fi = fopen(iname, "r");
FILE *fo = fopen(oname, "w");
int css;
for (fscanf(fi, "%d", &css); css > 0; -- css)
{
fscanf(fi, "%d", &n);
for (int i = 1; i <= n; ++ i)
fscanf(fi, "%d", &X[i]);
sol = true;
work(n);
if (X[1] == 1 && sol)
fprintf(fo, "DA\n");
else
fprintf(fo, "NU\n");
}
fcloseall();
return 0;
}