Pagini recente » Cod sursa (job #1400268) | Cod sursa (job #2594777) | Borderou de evaluare (job #2270147) | Monitorul de evaluare | Cod sursa (job #1846436)
# 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;
}