Cod sursa(job #1709006)

Utilizator team_nameUPB Banu Popa Visan team_name 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]);
}