Cod sursa(job #1712087)

Utilizator CTI_KnightCir Constantin CTI_Knight Data 1 iunie 2016 23:18:44
Problema Twoton Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.99 kb
# include <fstream>
# include <algorithm>
# include <vector>

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;    // 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];
            val[i] = val[i + 1];
        }
    }

    g << a[0];

    return 0;
}