Pagini recente » Cod sursa (job #3152321) | Cod sursa (job #1636709) | Cod sursa (job #2499600) | Cod sursa (job #2512137) | Cod sursa (job #1709408)
#include <fstream>
#define NMAX (1 << 20)
#define MOD 19997
using namespace std;
ifstream fin("twoton.in");
ofstream fout("twoton.out");
int n;
int a[NMAX];
int count = 0;
int DP[NMAX];
int wtf(int i)
{
count++;
if(count >= MOD) {
count -= MOD;
}
if(i == n - 1)
return a[i];
if(a[i] < wtf(i + 1))
return a[i];
else
return wtf(i + 1);
}
int wtf_optim()
{
int minim = a[n - 1];
long long sum = 1;
DP[n - 1] = 1;
for(int i = n - 2; i >= 0; i--)
{
if(a[i] >= minim)
DP[i] = sum + 1;
else
DP[i] = 1;
if(minim > a[i])
minim = a[i];
sum = (sum + DP[i]) % MOD;
DP[i] %= MOD;
}
fout << sum << "\n";
}
int main()
{
fin >> n;
for(int i = 0; i < n; i++)
fin >> a[i];
//wtf(0);
//fout << count << "\n";
wtf_optim();
fin.close();
fout.close();
return 0;
}