Cod sursa(job #1709510)

Utilizator flawlessUCV Turcu Abu-ras Albastroiu flawless Data 28 mai 2016 12:40:48
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.25 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <stdio.h>

int n;
int a[1000024];
int count = 0;
int K=0;
long long comparatorul_pulii;
long long count2;
int i;
FILE *fin = fopen("twoton.in", "r");
  FILE *fout = fopen("twoton.out", "w");
int wtf(int i)
{
  count++;
  if (count >= 19997) {
    count -= 19997;
  }
  if (i == n - 1) {
    return a[i];
  }
  if (a[i] < wtf(i + 1)) {
    return a[i];
  } else {
    return wtf(i + 1);
  }
}

int wtf2(int i)
{
  count2++;
  if (count2 >= 19997) {
    count2 -= 19997;
  }
  if (i == n - 1) {
    return a[i];
  }
  if (a[i] < comparatorul_pulii) {
        comparatorul_pulii=a[i];
    return a[i];
  } else {
      count2=count2*2;
    return comparatorul_pulii;
  }
}

int main()
{

  fscanf(fin, "%d", &n);
  for (int i = 0; i < n; ++i) {
    fscanf(fin, "%d", &a[i]);
  }

    comparatorul_pulii=a[n-1];
    count2=1;

  for(i=n-2;i>=0;i--)
  {
    if(a[i]>comparatorul_pulii)
        count2*=2;
    else
        comparatorul_pulii=a[i];
    count2++;
     if (count2 >= 19997)
    {
        count2 -= 19997;
    }
  }

    //wtf(0);
  fprintf(fout, "%d\n", count2%19997);
  fclose(fin);
  fclose(fout);
}