Pagini recente » Cod sursa (job #203952) | Cod sursa (job #2689568) | Monitorul de evaluare | Rezultatele filtrării | Cod sursa (job #1709764)
#include <stdio.h>
int n;
int a[1000024];
int w[1000024];
int count = 0;
int wtf(int i)
{
w[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 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]);
}
w[0] = 1;
count = 1;
int pos=0,min=a[0];
for (int i = 1; i < n;i++)
if (min >= a[i])
{
min = a[i];
pos = i;
}
for (int i = 1; i < n; i++)
{
if (i-1 >= pos && a[i-1]<=a[i])
w[i] = w[i-1];
else w[i] = 2*w[i-1];
count += w[i];
count %= 19997;
}
//wtf(0);
// printf("%d", count);
fprintf(fout, "%d\n", count);
fclose(fin);
fclose(fout);
}