Pagini recente » Cod sursa (job #1419484) | Cod sursa (job #1618602) | Cod sursa (job #1549689) | Cod sursa (job #793027) | Cod sursa (job #1709504)
#include <iostream>
#include <stdio.h>
#define NMAX 1000024
#define MOD 19997
using namespace std;
int main() {
freopen("twoton.in", "r", stdin);
freopen("twoton.out", "w", stdout);
int n;
int *a = (int*)calloc(NMAX, 4);
int *b = (int*)calloc(NMAX + 1, 4);
scanf("%i", &n);
for (int i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
int min = a[n - 1];
b[n - 1] = min;
for (int i = n - 2; i >= 0; --i) {
if (a[i] < min) {
min = a[i];
}
b[i] = min;
}
int next_term = 1;
int sum = 1;
for (int i = 0; i < n - 1; ++i) {
if (a[i] > b[i] || (a[i] == a[i + 1])) {
next_term *= 2;
next_term %= MOD;
}
sum += next_term;
sum %= MOD;
}
printf("%d\n", sum);
fclose(stdin);
fclose(stdout);
}