Cod sursa(job #1709325)

Utilizator twistedstoryUAIC Twisted Story twistedstory Data 28 mai 2016 11:49:03
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.61 kb
#include<bits/stdc++.h>
using namespace std;

const int MOD=19997;

int i,n,a[100005],cnt,aux;

int Pow(int a,int b) {
    int ans=1;

    while(b)
    if(b&1) ans*=a,ans%=MOD,--b;
    else a*=a,a%=MOD,b/=2;

    return ans;
}

int main()
{
  ifstream cin("twoton.in");
  ofstream cout("twoton.out");

  ios_base::sync_with_stdio(0); cin.tie(0);

  cin>>n;
  for(i=0;i<n;++i) cin>>a[i];

  for(i=n-1;i>0;--i) if(a[i]<=a[i-1]) a[i-1]=a[i];

  for(i=0;i<n-1;++i)
  if(a[i]>=a[i+1]) ++aux,cnt+=Pow(2,aux),cnt%=MOD;
  else cnt+=Pow(2,aux),cnt%=MOD;

  cout<<(cnt+1)%MOD<<'\n';

 return 0;
}