Pagini recente » Cod sursa (job #100835) | Cod sursa (job #1260506) | Cod sursa (job #1504602) | Cod sursa (job #1009934) | Cod sursa (job #1709435)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1000026;
ifstream fin("twoton.in");
ofstream fout("twoton.out");
int n;
int a[NMAX];
int d[NMAX];
int count = 0;
int mini = 0x3f3f3f3f;
int MOD = 19997;
int minix[NMAX];
int mark[NMAX];
int wtf(int i)
{
if(mark[i] == 1)
return minix[i];
mark[i] = 1;
if( i == n) {
d[n] = 1;
mark[n] = 1;
minix[n] = a[n];
return a[n];
}
if(a[i] < wtf(i + 1)) {
d[i] = (d[i + 1] + 1) % MOD;
minix[i] = a[i];
return wtf(i + 1);
} else {
minix[i] = wtf(i + 1);
d[i] = (d[i + 1] * 2 + 1 ) % MOD;
return minix[i];
}
}
int main()
{
fin >> n;
for(int i = 1; i <= n; ++i)
fin >> a[i];
wtf(1);
fout << d[1] << '\n';
return 0;
}