Pagini recente » Cod sursa (job #1285870) | Profil LilGoat_4109 | Cod sursa (job #3277466) | Cod sursa (job #157551) | Cod sursa (job #1709693)
#include <iostream>
#include <limits.h>
#include <stdio.h>
using namespace std;
int w[65000];
int wc[65000];
int n;
int a[1000024];
int count = 0;
int wtf(int i)
{
count++;
if (count >= 19997) {
count -= 19997;
}
if (i == n - 1) {
return a[i];
}
if (a[i] < wtf(i + 1)) {
return a[i];
} else {
return wtf(i + 1);
}
}
int minus = 0;
int cnt = 0;
int gener(){
wc[n-1] = 1;
w[n-1] = a[n-1];
for(int i = n - 2; i >= 0; i--){
wc[i] += 1;
while(wc[i] >= 19997){
wc[i] -= 19997;
}
wc[i] += wc[i+1];
while(wc[i] >= 19997){
wc[i] -= 19997;
}
if(a[i] >= w[i+1]){
wc[i] += wc[i+1];
w[i] = w[i+1];
} else {
w[i] = a[i];
}
while(wc[i] >= 19997){
wc[i] -= 19997;
}
}
return wc[0];
}
int wtf3(int i){
count ++;
if (count >= 199997){
count -= 199997;
}
if (i == n - 1){
return a[i];
}
count += wc[i+1];
// wc[i] += wc[i+1];
if (a[i] < w[i + 1]){
w[i] = a[i];
return a[i];
} else {
count += wc[i+1];
// wc[i] += wc[i+1];
// w[i] = w[i + 1];
return w[i + 1];
}
}
int main()
{
FILE *fin = fopen("twoton.in","r");
FILE *fout = fopen("twoton.out","w");
fscanf(fin, "%d", &n);
for( int i = 0; i < n; ++i){
fscanf(fin, "%d", &a[i]);
}
long rez = gener();
//
// wtf(0);
//cout << rez << " " << count;
fprintf(fout, "%d\n", rez);
fclose(fin);
fclose(fout);
return 0;
}