Cod sursa(job #1709413)

Utilizator UPT-DaUPT Troncota Teudan Vijdea UPT-Da Data 28 mai 2016 12:08:33
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.64 kb
#include <stdio.h>

int n;
int a[1000024];
int wtf[1000024];
int cnt[1000024];

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]);
  }
  wtf[n-1] = a[n-1];
  cnt[n-1] = 1;
  for (int i = n-2; i >= 0; --i) {
    if (a[i]>=wtf[i+1]) {
        wtf[i] = wtf[i+1];
        cnt[i] = 2*cnt[i+1]+1;
    }
    else {
        wtf[i] = a[i];
        cnt[i] = cnt[i+1]+1;
    }
    while (cnt[i]>=19997) {
        cnt[i] -= 19997;
    }
  }
  fprintf(fout, "%d\n", cnt[0]);
  fclose(fin);
  fclose(fout);
}