Pagini recente » Cod sursa (job #1129411) | Cod sursa (job #3148812) | Cod sursa (job #500246) | Cod sursa (job #2424882) | Cod sursa (job #1709116)
#include <stdio.h>
int n;
int a[100024];
int minim[100005];
int sol[10005];
int count = 0;
int main()
{
FILE *fin = fopen("twoton.in", "r");
FILE *fout = fopen("twoton.out", "w");
fscanf(fin, "%d", &n);
for (int i = 0; i < n; ++i) {
fscanf(fin, "%d", &a[i]);
}
minim[n - 1] = a[n - 1];
for (int i = n - 2; i >= 0; --i)
{
if (a[i] < minim[i + 1])
{
minim[i] = a[i];
}
else
{
minim[i] = minim[i + 1];
}
}
sol[n - 1] = 1;
for (int i = n - 2; i >= 0; --i)
{
if (a[i] == minim[i])
{
sol[i] = (1 + sol[i + 1])% 19997;
}
else
{
sol[i] = (1 + 2 * sol[i + 1])%19997;
}
}
fprintf(fout, "%d\n", sol[0]);
fclose(fin);
fclose(fout);
}