Cod sursa(job #1584199)

Utilizator VasilescuVasilescu Eliza Vasilescu Data 29 ianuarie 2016 19:37:31
Problema Orase Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <stdlib.h>

typedef struct {
    int x, y;
}oras;
 oras v[50000];

 int cmp(const void *p, const void *q){
    oras *pa=(oras *)p, *qb=(oras *)q;
    oras a=(*pa), b=(*qb);
    if(a.x<b.x) return -1;
    if(a.x>b.x) return 1;
    return 0;
 }

 int dist(int p, int q){
    return v[p].y+v[q].y+v[q].x-v[p].x;
 }

int main(){
    FILE *fin, *fout;
    fin=fopen("orase.in", "r");
    fout=fopen("orase.out", "w");
    int  dmax, i, u,n, m;
    fscanf(fin, "%d%d", &m, &n);
    for(i=0; i<n; i++)
        fscanf(fin, "%d%d", &v[i].x, &v[i].y);
    qsort(v, n, sizeof(v[0]), cmp);
    u=0;
    dmax=dist(0, 1);
    for(i=2; i<n; i++){
        if(dist(i-1, i)>dist(u, i))
            u=i-1;
        if(dist(u, i)>dmax)
            dmax=dist(u, i);
    }


    fprintf(fout, "%d\n", dmax);

    fclose(fin);
    fclose(fout);

    return 0;
}