Cod sursa(job #1760752)
Utilizator | Sergiu xSlive | Data | 21 septembrie 2016 10:33:28 |
---|---|---|---|
Problema | Twoton | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva ICPC | Marime | 0.5 kb |
#include <fstream>
#define MOD 19997
using namespace std;
ifstream f("twoton.in");
ofstream g("twoton.out");
int n;
int a[100005],minim[100005],sol[100005];
int main(){
f >> n;
for(int i=0;i<n;i++) f >> a[i];
minim[n-1] = a[n-1];
for(int i=n-2;i>=0;i--) minim[i] = min(minim[i+1],a[i]);
sol[n-1] = 1;
for(int i=n-2;i>=0;i--){
if(minim[i] < minim[i+1]) sol[i] = 1+sol[i+1] % MOD;
else sol[i] = 1+2*sol[i+1] % MOD;
}
g << sol[0];
}