Cod sursa(job #1773533)

Utilizator radarobertRada Robert Gabriel radarobert Data 7 octombrie 2016 22:20:16
Problema Twoton Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.59 kb
#include <fstream>

using namespace std;

int v[1000024];
int dp[1000024];
int mn[1000024];
const int MOD = 19997;

int main()
{
    ifstream in("twoton.in");
    ofstream out("twoton.out");

    int n;
    in >> n;
    for (int i = 1; i <= n; i++)
        in >> v[i];

    mn[n+1] = 0x3f3f3f3f;
    for (int i = n; i > 0; i--)
        mn[i] = min(v[i], mn[i+1]);

    for (int i = n-1; i > 0; i--)
    {
        dp[i] = (1 + dp[i+1]) % MOD;
        if (v[i] >= mn[i+1])
            dp[i] = (dp[i] * 2) % MOD;
    }

    out << (dp[1] + 1) % MOD << '\n';

    return 0;
}