Cod sursa(job #1709104)

Utilizator forsakenAweUNIBUC Suditu Cornoiu Chihai forsakenAwe Data 28 mai 2016 10:54:52
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
const int mod  = 19997;

int n;
int a[100100];
int Min[100100];
int d[100100];
int main()
{
    freopen("twoton.in","r",stdin);
    freopen("twoton.out","w",stdout);

    cin>>n;
    for(int i=0;i<n;i++) {
        cin>>a[i];
    }
    Min[n - 1] = a[n - 1];
    for(int i = n - 2;i >= 0;i--) {
        Min[i] = min(Min[i + 1], a[i]);
    }


    d[n - 1] = 1;
    for (int i = n - 2; i >= 0; i--) {
        d[i] = 1 + d[i + 1];
        if (d[i] >= mod ) d[i] -= mod;
        if (a[i] >= Min[i + 1]) {
            d[i] += d[i + 1];
            if (d[i] >= mod) d[i] -= mod;
        }
    }
    cout<<d[0];






    return 0;
}