Cod sursa(job #1709021)

Utilizator ubb_oprimabuzurile_2016UBB - OprimAbuzurile2016 - Petru Bianca Cosmin ubb_oprimabuzurile_2016 Data 28 mai 2016 10:36:34
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.57 kb
#include <stdio.h>
#include <iostream>

using namespace std;

int n, dp[1000005], a[1000005];

const int mod = 19997;
 
int main()
{
  FILE *fin = fopen("twoton.in", "r");
  FILE *fout = fopen("twoton.out", "w");
  fscanf(fin, "%d", &n);
  for (int i = 0; i < n; ++i) {
    fscanf(fin, "%d", &a[i]);
  }
  dp[n - 1] = 1;
  int _min = a[n - 1];
  for(int i = n - 2; i >= 0 ; -- i) {
    dp[i] = (dp[i + 1] + 1) % mod;
    if(a[i] >= _min) {
      dp[i] = (dp[i + 1] + dp[i]) % mod;
    }
    _min = min(_min, a[i]);
  }
  fprintf(fout, "%d\n", dp[0]);
  fclose(fin);
  fclose(fout);
}