Cod sursa(job #1584198)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 29 ianuarie 2016 19:35:11
Problema Orase Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.8 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;
    int m,n,u,dmax,i;
    fin=fopen("orase.in","r");
    fout=fopen("orase.out","w");
    fscanf(fin,"%d%d", &n, &m);
    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", dmax);
    return 0;
}