Cod sursa(job #1974692)

Utilizator andreeammAndreea Musat andreeamm Data 28 aprilie 2017 15:18:24
Problema Twoton Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.53 kb
#include <iostream>
#include <fstream>
#define LN 19997
using namespace std;

int n, crt_min;
int a[1000024];
int d[1000024];

int main()
{
	ios_base::sync_with_stdio(false);

	freopen("twoton.in", "r", stdin);
	freopen("twoton.out", "w", stdout);
	
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> a[i];

	d[n - 1] = 1;
	crt_min = a[n - 1];
	
	for (int i = n - 1; i >= 0; i--)
	{
		if (a[i] < crt_min)
		{
			crt_min = a[i];
			d[i] = (d[i + 1] + 1) % LN;
		}
		else 
		{
			d[i] = ((d[i + 1] << 1) + 1) % LN;
		}
	}

	cout << d[0] << "\n";
}