Pagini recente » Cod sursa (job #700196) | Cod sursa (job #2754368) | Cod sursa (job #955107) | Cod sursa (job #1535553) | Cod sursa (job #1709164)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("twoton.in");
ofstream fout("twoton.out");
#define MOD 19997
#define MAX 1000030
int a[MAX], b[MAX], f[MAX];
int main()
{
int n, i;
fin >> n;
for(i = 1 ; i <= n ;i ++)
{
fin >> a[i];
}
b[n] = a[n];
for(i = n - 1 ; i >= 1 ; i--)
{
b[i] = min(b[i + 1], a[i]);
}
f[n] = 1;
for(i = n - 1 ; i >= 1 ; i--)
{
if(a[i] < b[i + 1])
{
f[i] = (f[i + 1] + 1);
}
else
f[i] = (2 * f[i + 1] + 1);
while(f[i] >= MOD)
f[i] -= MOD;
}
fout << f[1] << "\n";
}