Cod sursa(job #1003263)

Utilizator alexpascadiAlexandru Pascadi alexpascadi Data 30 septembrie 2013 09:45:38
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

struct strada
{
    int L;
    int D;
};

const int N=50000;
strada v[N];

bool cmp(strada x, strada y)
{
    if(x.D<y.D) return 1;
    return 0;
}

int main()
{
    FILE *in, *out;
    in=fopen("orase.in","r");
    out=fopen("orase.out","w");
    int n,m,i,pmax=0,dmax=0;
    fscanf(in,"%d%d",&m,&n);
    for(i=0;i<n;i++)
        fscanf(in,"%d%d",&v[i].D,&v[i].L);
    sort(v,v+n,cmp);

    //for(i=0;i<n;i++)
        //fprintf(out,"%d %d\n",v[i].D,v[i].L);

    pmax=0; dmax=v[i].D;
    for(i=1;i<n;i++)
    {
        if(dmax < v[i].L + v[i].D - v[pmax].D + v[pmax].L) dmax = v[i].L + v[i].D - v[pmax].D + v[pmax].L;
        if(v[i].D - v[pmax].D + v[pmax].L < v[i].L) pmax=i;
    }
    fprintf(out,"%d",dmax);
    return 0;
}