Cod sursa(job #68101)

Utilizator ZeusCatalin Tiseanu Zeus Data 26 iunie 2007 14:30:46
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb

using namespace std;

#include <cstdio>
#include <vector>
#include <algorithm>
#include <queue>

int M, N;
priority_queue<int> pq;
vector< pair<int,int> > vp;

int main()
{
    freopen("orase.in", "r", stdin);
    freopen("orase.out", "w", stdout);
    
    int res = 0, x, y, el;
    
    scanf("%d %d", &M, &N);
    for( int i = 1; i <= N; i++ )
    {
         scanf("%d %d", &x, &y);
         vp.push_back( make_pair(x,y) );
    }
    
    sort( vp.begin(), vp.end() );
    
    pq.push( vp[0].second - vp[0].first );
    
    for( int i = 1; i < N; ++i )
    {
         el = pq.top();
         res >?= vp[i].first + vp[i].second + el;
         pq.push( vp[i].second - vp[i].first );
    }
    
    printf("%d\n", res );
    
    return 0;    
}