Cod sursa(job #1709269)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 28 mai 2016 11:33:11
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.72 kb
#include <fstream>

using namespace std;

const int N_MAX = 1000050;
const int MOD = 19997;

int N;
int v[N_MAX];
int ret[N_MAX];
int steps[N_MAX];

int main() {
   ifstream f("twoton.in");
   ofstream g("twoton.out");
   
   f >> N;
   
   for(int i = 0; i < N; i++)
      f >> v[i];
      
   steps[N - 1] = 1;
   ret[N - 1] = v[N - 1];
   
   for(int i = N - 2; i >= 0; i--) {
      steps[i] = 1 + steps[i + 1];
      if(steps[i] >= MOD) steps[i] -= MOD;
      if(v[i] < ret[i + 1]) {
         ret[i] = v[i];
      } else {
         ret[i] = ret[i + 1];
         steps[i] += steps[i + 1];
         if(steps[i] >= MOD) steps[i] -= MOD;
      }
   }
   
   g << steps[0] << '\n';
   return 0;
}