Cod sursa(job #1846436)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 12 ianuarie 2017 19:56:37
Problema Nums Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
# include <iostream>
# include <fstream>
# include <algorithm>

# include <queue>

using namespace std;

const int MAX_N = 100000;

struct proc {
    int t, p;
    bool operator<( const proc& a ) const { return t > a.t; }
} v[MAX_N];

int main() {
    ifstream fin( "procesor.in" );
    ofstream fout( "procesor.out" );

    int n;
    fin >> n;

    long long p = 0;
    for ( int i = 0; i < n; i ++ ) {
        fin >> v[i].t >> v[i].p;
        p += v[i].p;
    }

    sort( v, v + n );

    priority_queue<int> q;
    int i = 0;

    for ( int t = v[0].t; t > 0; t -- ) {
        while ( i < n && v[i].t == t )
            q.push( v[i ++].p );

        if ( !q.empty() ) {
            p -= q.top();
            q.pop();
        }
    }

    fout << p;

    fin.close();
    fout.close();

    return 0;
}