Pagini recente » Cod sursa (job #491582) | Cod sursa (job #3247741) | Cod sursa (job #416377) | Cod sursa (job #2447121) | Cod sursa (job #1709420)
#include <stdio.h>
int n;
int a[1000024];
int min[1000024];
long long counts[1000024];
int count = 1;
int main()
{
FILE *fin = fopen("twoton.in", "r");
FILE *fout = fopen("twoton.out", "w");
int i;
fscanf(fin, "%d", &n);
for ( i = 0; i < n; ++i) {
fscanf(fin, "%d", &a[i]);
}
min[n - 1] = a[n - 1];
for ( i = n - 2; i >= 0; --i) {
min[i] = (a[i] < min[i + 1] ? a[i] : min[i + 1]);
}
counts[0] = 1;
for (i = 1; i < n; ++i) {
if (a[i - 1] < min[i]) {
counts[i] = counts[i - 1];
}
else {
counts[i] = (counts[i - 1] << 1) % 19997;
}
count = (count + counts[i]) % 19997;
}
fprintf(fout, "%d\n", count);
fclose(fin);
fclose(fout);
return 0;
}