Cod sursa(job #655820)

Utilizator AndreeaNNedelcu Andreea AndreeaN Data 3 ianuarie 2012 15:08:13
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include<stdlib.h>
FILE *f=fopen("orase.in","r"),*g=fopen("orase.out","w");
long int m,n;

struct oras{
    long int d;
    long int l;
}v[50001];

int cmp(const void *a,const void *b){
    int x=(*(oras *)a).d-(*(oras *)b ).d;
    if(x==0){x=(*(oras *)a).l-(*(oras *)b).l;}
    return x;
}

void citire(){
long int i;
    fscanf(f,"%ld %ld\n",&m,&n);
    for(i=1; i<=n; i++){
        fscanf(f,"%ld %ld\n",&v[i].d,&v[i].l);
    }
}

void rezolvare(){
long int i,max=-1,ind,s;
    ind=1;
    for(i=2; i<=n; i++){
        s=v[i].l+v[i].d+v[ind].l-v[ind].d;
        if(s>max){max=s;}
        if(v[i].l-v[i].d>v[ind].l-v[ind].d){
            ind=i;
        }
    }
    fprintf(g,"%ld",max);
}

int main()
{
    citire();
    qsort(v+1,n,sizeof(oras),cmp);
    rezolvare();
    return 0;
}