Pagini recente » Cod sursa (job #2965203) | Cod sursa (job #3142576) | Cod sursa (job #2529139) | Cod sursa (job #634407) | Cod sursa (job #162903)
Cod sursa(job #162903)
#include<stdio.h>
#include<string.h>
#define INPUT "nivele.in"
#define OUTPUT "nivele.out"
#define CL(x) memset(x,0,sizeof(x));
#define NMax 50002
FILE *fin = fopen(INPUT, "r"), *fout = fopen(OUTPUT, "w");
long N, nrTot;
long a[ NMax ], stiva[ NMax ];
void readValues();
int solveFunction();
int main()
{
int T;
fscanf(fin, "%d", &T);
for(int i = 1; i <= T; ++i)
{
readValues();
if(solveFunction())
fprintf(fout, "DA\n");
else
fprintf(fout, "NU\n");
}
fclose(fin);
fclose(fout);
return 0;
}
void readValues()
{
CL(a);
CL(stiva);
fscanf(fin, "%ld", &N);
for(long i = 0; i < N; ++i)
fscanf(fin, "%ld", &a[ i ]);
}
int solveFunction()
{
int indicator = -1;
nrTot = 0;
for(long i = 1; i < N; ++i)
{
if(a[ i ] > a[ i - 1] && indicator != 2)
{
indicator = 1;
stiva[ ++nrTot ] = a[ i - 1];
}
else
if(a[ i ] == a[ i - 1])
{
indicator = 2;
}
else
if(a[ i ] < a[ i - 1])
{
if(indicator == 1)
{
return 0;
}
else
if(indicator == 2)
{
for(int j = 0; j <= nrTot; ++j)
if( stiva[ j ] == a[ i - 1 ])
{
return 0;
}
stiva[ ++nrTot ] = a[ i - 1];
indicator = 3;
}
}
}
if(indicator != 2)
return 0;
return 1;
}