Cod sursa(job #1709147)

Utilizator vand_bot_la_PAUPB Mardale Mocanu Vasilache vand_bot_la_PA Data 28 mai 2016 11:02:20
Problema Twoton Scor 100
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.58 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

#define MOD 19997

int n;
int a[1000024];
int aux[1000024];
int countt[1000024];

int main (void) {
	freopen("twoton.in", "r", stdin);
	freopen("twoton.out", "w", stdout);

	scanf("%d", &n);

	for (int i = 0; i < n; ++i) {
		scanf("%d", &a[i]);
	}

	aux[n - 1] = a[n - 1];

	countt[n - 1] = 1;

	for (int i = n - 2; i >= 0; --i) {
		aux[i] = min(a[i], aux[i + 1]);
		if (a[i] == aux[i]) {
			countt[i] = (countt[i + 1] + 1) % MOD;
		} else {
			countt[i] = (2 * countt[i + 1] + 1) % MOD;
		}
	}

	printf("%d", countt[0]);
	return 0;
}