Cod sursa(job #1708943)

Utilizator echipa_BoSSilorUNIBUC Harsan Bicsi Baltatu echipa_BoSSilor Data 28 mai 2016 10:19:05
Problema Twoton Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.36 kb
/*************************************************************\
~*********************ENJOY THE SILENCE***********************~
\*************************************************************/

#include <bits/stdc++.h>
using namespace std;

/*******************Debugging defines*************************/

#define ok_dump() cerr<<"OK\n"
#define var_dump(x) cerr<<#x": "<<x<<'\n'
#define arr_dump(x, n) {cerr<<#x"[]: ";\
	for(int _=0;_<n;++_) cerr<<x[_]<<" ";cerr<<'\n';}

/*************************************************************/


int main() {	
//	assert(freopen("input.txt", "r", stdin));
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	
	ifstream fin("twoton.in");
	ofstream fout("twoton.out");

	int n;
	fin >> n;
	vector<int> A(n);
	for(int i = 0; i < n; ++i)
		fin >> A[i];

	vector<int> Ret(n, 0), Count(n, 0);

	arr_dump(A, n);
	
	Ret[n - 1] = A[n - 1];
	Count[n - 1] = 1;

	for(int i = n - 2; i >= 0; --i) {
		Count[i] = 1 + Count[i + 1];
		if(A[i] < Ret[i + 1]) {
			cerr << "sdk" << i << '\n';
			Ret[i] = A[i];
		} else {
			Ret[i] = Ret[i + 1];
			Count[i] += Count[i + 1];
		}

		Count[i] %= 19997;
	}

	arr_dump(Count, n);
	arr_dump(Ret, n);

	fout << Count[0];
	
	return 0;
}

/*************************************************************\
~*********************ENJOY THE SILENCE***********************~
\*************************************************************/