Cod sursa(job #2595914)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 8 aprilie 2020 17:21:31
Problema Zombie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f ( "zombie.in" );
ofstream g ( "zombie.out" );
deque <int>Q;
int main()
{
    int D, N, K, sol = 0, nr;
    f >> D >> N >> K;
    f >> nr;
    Q.push_back ( nr );

    for ( int i = 1; i <= N; i++ )
    {
        f >> nr;

        if ( nr - Q.back() >= D )
        {
            int lg = Q.size();

            if ( lg >= K )
            {
                sol += K;

                while ( !Q.empty() )
                    Q.pop_back();
            }
            else
            {
                while ( nr - Q.back() >= D && !Q.empty() )
                {
                    sol++;
                    Q.pop_back();
                }

                Q.push_front ( nr );
            }
        }
        else Q.push_front ( nr );
    }

    int lg = Q.size();

    if ( lg >= K )
        sol += K;
    else sol += lg;

    g << sol;
    return 0;
}