Cod sursa(job #1584202)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 29 ianuarie 2016 19:41:36
Problema Orase Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.74 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()
{
  int i,u,dmax,n,m;
  FILE*fin,*fout;
  fin=fopen("orase.in","r");
  fscanf(fin,"%d%d",&n,&m);
  for(i=0;i<n;i++){
    fscanf(fin,"%d%d",&v[i].x,&v[i].y);
  }
  fclose(fin);
  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);
  }
  fout=fopen("orase.out","w");
  fprintf(fout,"%d\n",dmax);
  fclose(fout);
  return 0;
}