Pagini recente » Cod sursa (job #3142914) | Cod sursa (job #786947) | Cod sursa (job #131867) | Cod sursa (job #1319731) | Cod sursa (job #2455943)
#include <fstream>
using namespace std;
ifstream f("twoton.in");
ofstream g("twoton.out");
int N;
const int MOD = 19997;
int A[100005], Min[100005], Cnt[100005];
void Read(){
f >> N;
for(int i = 1; i <= N; i++)
f >> A[i];
}
void precalcMin(){
Min[N] = A[N];
for(int i = N - 1; i >= 1; i--)
Min[i] = min(Min[i + 1], A[i]);
}
void Solve(){
Cnt[N] = 1;
for(int i = N - 1; i >= 1; i--){
Cnt[i] = Cnt[i + 1] + 1;
if(A[i] >= Min[i + 1]){
Cnt[i] += Cnt[i + 1];
if(Cnt[i] >= MOD)
Cnt[i] -= MOD;
}
}
g << Cnt[1] << '\n';
}
int main()
{
Read();
precalcMin();
Solve();
return 0;
}