Cod sursa(job #757077)

Utilizator Theorytheo .c Theory Data 10 iunie 2012 23:06:52
Problema Orase Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#include<algorithm>
#define nmax 50004
using namespace std;
ifstream fin("orase.in");
ofstream fout("orase.out");

int n,m;
struct oras{int d; int s;};

oras o[nmax];

inline bool cmp(oras a, oras b)
{
    return (a.d < b.d) || (a.d == b.d && a.s < b.s) ;
}

int solve()
{
    int maxi = 0, maxt = 0 ;
    for(int i = 1; i <= m; i++)
    {
        if(maxi < o[i].s )
        {
            maxi = o[i].s;
            if(maxt > maxi + o[i - 1].s &&o[i - 1].d == o[i].d)
                maxt =  maxi + o[i - 1].s;
        }
        else{
            maxi += o[i].d - o[i - 1].d ;
            if(maxi + o[i].s >maxt)
                maxt = maxi + o[i].s;
        }
    }
    return maxt;
}

void read()
{
    fin >>n >> m ;
    for(int i = 1; i <= m ;i++)
        fin >>o[i].d >> o[i].s;

    sort(o + 1, o + 1 + m, cmp);


}
int main()
{
    read();
    fout<<solve();
    fin.close();
    return 0;
}