Pagini recente » Cod sursa (job #3282119) | Cod sursa (job #3167287) | Cod sursa (job #1643249) | Cod sursa (job #2979516) | Cod sursa (job #69598)
Cod sursa(job #69598)
#include<stdio.h>
#include<stdlib.h>
FILE*f=fopen("orase.in","r");
FILE*g=fopen("orase.out","w");
long n,m,dmax=-100, max;
typedef struct
{
long d, l;
} Oras;
Oras v[50000];
void citire()
{
long j, s, i;
fscanf(f,"%ld %ld",&m,&n);
for(i=1;i<=n;++i)
{
fscanf(f,"%ld %ld",&v[i].d,&v[i].l);
for (j=1; j<i; j++)
{ s=abs(v[i].d-v[j].d)+v[i].l+v[j].l;
if (s>max) max=s;
}
}
}
int pozitie(int p,int u)
{ int st,dr;
Oras aux;
st=p;dr=u;aux=v[p];
while(st<dr)
{ while(st<dr && v[dr].l>=aux.l) dr--;
v[st]=v[dr];
while(st<dr && v[st].l<=aux.l) st++;
v[dr]=v[st];
}
v[st]=aux;
return st;
}
void qsort(int p,int u)
{ int m=pozitie(p,u);
if(p<m) qsort(p,m-1);
if(m<u) qsort(m+1,u);
}
void calcul()
{
int i;
/*
qsort(1,n);
long smax, s;
smax=v[1].l+v[2].l+abs(v[1].d-v[2].d);
for(i=2;i<n;i++)
{ s=abs(v[i].d-v[i+1].d)+v[i].l+v[i+1].l;
if(s>smax) smax=s;
} */
fprintf(g,"%ld",max);
}
int main()
{
citire();
calcul();
fclose(f);
fclose(g);
return 0;
}