Cod sursa(job #1709006)
| Utilizator | Data | 28 mai 2016 10:33:19 | |
|---|---|---|---|
| Problema | Twoton | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest | Marime | 0.58 kb |
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
const int nmax = 1000010, mod = 19997;
int n, a[nmax], dp[nmax];
int main()
{
freopen("twoton.in", "r", stdin);
freopen("twoton.out", "w", stdout);
scanf("%i", &n);
for (int i = 1; i <= n; ++ i)
scanf("%i", &a[i]);
dp[n] = 1;
int mn = a[n];
for (int i = n - 1; i >= 1; -- i)
{
if (a[i] < mn)
dp[i] = (dp[i + 1] + 1) % mod;
else
dp[i] = (2 * dp[i + 1] + 1) % mod;
mn = min(mn, a[i]);
}
printf("%i", dp[1]);
}