Cod sursa(job #1709084)

Utilizator UBB_Craciun_Griza_PuscasUBB ATeamHasNoName UBB_Craciun_Griza_Puscas Data 28 mai 2016 10:50:18
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

const int MAXN = 100100;
const int MOD = 19997;

int v[MAXN], cur[MAXN], minim, n;

ifstream fin("twoton.in");
ofstream fout("twoton.out");

int main()
{
    fin >> n;

    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
    }

    cur[n] = 1;
    minim = v[n];

    for (int i = n - 1; i > 0; --i) {
        if (v[i] < minim) {
            cur[i] = cur[i + 1] + 1;
            minim = v[i];
            if (cur[i] >= MOD)
                cur[i] -= MOD;
        }
        else {
            cur[i] = cur[i + 1] * 2 + 1;
            if (cur[i] >= MOD)
                cur[i] -= MOD;
        }
    }

    fout << cur[1];

    return 0;
}