Pagini recente » Cod sursa (job #1468182) | Cod sursa (job #1316809) | Cod sursa (job #56649) | Cod sursa (job #1296696) | Cod sursa (job #1712088)
# include <fstream>
# include <algorithm>
# include <vector>
# define mod 19997
using namespace std;
ifstream f ( "twoton.in" );
ofstream g ( "twoton.out" );
int main()
{
int n; f >> n;
// Retinem in doi vectori a, val; numarul de pasi pe care in face functia apelata
// respectiv valoarea returnata de fuctie apelata cu ( i );
vector < int > v( n ), a( n ), val( n );
for ( int i = 0; i < n; ++ i ) {
f >> v[i];
}
a[n - 1] = 1; // ultimul element face un pas
val[n - 1] = v[n - 1]; // pentru ultimul element functia va returna valoare sa
for ( int i = n - 2; i >= 0; -- i ) {
a[i] = ( a[i + 1] + 1 ) % mod; // functia face cu un pas mai mult decat pentru elementul
// care se afla dupa el
if ( v[i] < val[i + 1] ) {
val[i] = v[i]; // functia se opreste
}
else {
a[i] = ( a[i] + a[i + 1] ) % mod;
val[i] = val[i + 1];
}
}
g << a[0] % mod;
return 0;
}