Cod sursa(job #1770139)

Utilizator lucametehauDart Monkey lucametehau Data 3 octombrie 2016 19:56:42
Problema Orase Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

using namespace std;
ifstream cin("orase.in");
ofstream cout("orase.out");
int m,n,i,d[50005],l[50005],lg,in,di;
void qsort(int begin,int end)
{
    int b=begin,e=end,pivot=(begin+end)/2;
    while(b<=e)
    {
        while(d[b]<d[pivot])
            b++;
        while(d[e]>d[pivot])
            e--;
        if(b<=e)
        {
            swap(d[b],d[e]);
            swap(l[b],l[e]);
            b++;
            e--;
        }
    }
    if(b<end)
        qsort(b,end);
    if(begin<e)
        qsort(begin,e);
}
int abs(int n)
{
    if(n<0)
        return -n;
    return n;
}
int main()
{
    cin>>m>>n;
    for(i=1;i<=n;i++)
    {
        cin>>d[i]>>l[i];
        if(l[i]>lg)
            lg=l[i];
    }
    qsort(1,n);
    for(i=1;i<=n&&in==0;i++)
    {
        if(l[i]==lg)
            in=d[i];
    }
    for(i=1;i<=n;i++)
    {
        if((d[i]!=in||l[i]!=lg)&&lg+abs(in-d[i])+l[i]>di)
            di=lg+abs(in-d[i])+l[i];
    }
    cout<<di;
    return 0;
}