Pagini recente » Cod sursa (job #2504844) | Cod sursa (job #1023904) | Cod sursa (job #2945185) | Cod sursa (job #928009) | Cod sursa (job #1582033)
#include <stdio.h>
int d[1000000], l[1000000];
int ax(int x, int y){
if(x<y)
return y;
else
return x;
}
int axs(int x, int y){
int cmax, mx, i, pz;
cmax=x;
mx=0;
for(i=0; i<y; i++){
if(l[i]<cmax && l[i]>mx){
mx=l[i];
pz=i;
}
}
x=mx;
return x;
}
int axd(int x, int y){
int cmax, mx, i, pz;
cmax=x;
mx=0;
for(i=0; i<y; i++){
if(l[i]<cmax && l[i]>mx){
mx=l[i];
pz=i;
}
}
return pz;
}
int main(){
FILE *fin, *fout;
fin=fopen("orase.in", "r");
fout=fopen("orase.out", "w");
int n, m, li, di, i, max, mx, poz, pz, sol;
fscanf(fin, "%d%d", &m, &n);
max=0;
mx=0;
for(i=0; i<n; i++){
fscanf(fin, "%d%d", &di, &li);
l[i]=li;
d[i]=di;
if(li>max){
max=li;
poz=i;
}
}
for(i=0; i<n; i++){
if(l[i]<max && l[i]>mx){
mx=l[i];
pz=i;
}
}
if(d[poz]-d[pz]==0){
mx=axs(mx, n);
pz=axd(mx, n);
}
sol=max+mx+ax(m-d[poz], m-d[pz]);
fprintf(fout, "%d\n", sol);
fclose(fin);
fclose(fout);
return 0;
}