Cod sursa(job #1709118)

Utilizator Spiromanii_MessiUNIBUCThrowTerror Spiromanii_Messi Data 28 mai 2016 10:58:19
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

# define pb push_back
# define mp make_pair
# define FORN( a , b , c ) for ( int a = b ; a <= c ; ++ a )
# define FORNBACK( a , b , c ) for ( int a = b ; a >= c ; -- a )
const int Nmax = 100001;
const int MOD = 19997;
int N,a[Nmax],d[Nmax],w;
int main()
{
    ios :: sync_with_stdio ( false ) ;

    freopen( "twoton.in" , "r" , stdin ) ;
    freopen( "twoton.out" , "w" , stdout ) ;
    cin>>N;
    for(int i=1;i<=N;i++) cin>>a[i];
    d[N]=1,w=a[N];
    for(int i=N-1;i>=1;i--){
        if(a[i]<w){
            w=a[i];
            d[i]=(d[i+1]+1)%MOD;
        }
        else{
            d[i]=(2*d[i+1]+1)%MOD;
        }
    }
    cout<<d[1]<<"\n";
    return 0 ;
}