Pagini recente » Diferente pentru teorema-chineza-a-resturilor intre reviziile 33 si 32 | Istoria paginii utilizator/adriandiaconita | Istoria paginii utilizator/regeledacilor | Profil AlexLuchianov | Cod sursa (job #460946)
Cod sursa(job #460946)
#include <iostream>
#include <fstream>
#define INFILE "orase.in"
#define OUTFILE "orase.out"
#define max_N 51000
using namespace std;
ifstream fin(INFILE);
ofstream fout(OUTFILE);
long int M, N, D[max_N], L[max_N], j, maxim1, maxim2, i, poz, maxim, calc[max_N];
int main()
{
fin >> M >> N;
for(i = 1; i <= N; i ++)
{
fin >> D[i] >> L[i];
D[i] = D[i] * 100000 + L[i];
}
sort(D + 1, D + N + 1);
for(i = 1; i <= N; i ++)
{
L[i] = D[i] % 100000 ;
D[i] = D[i] / 100000 ;
}
for(i = 1; i <= N; i ++)
calc[i] = abs(L[j] - D[j]);
j = 1; i = 2;
for(int k = 2; k <= N; k ++)
{
int ci = i, cj = j;
if(L[k] + D[k] + abs(L[cj] - D[cj] && k!=cj) > maxim)
{
maxim = L[k] + D[k] + abs(L[cj] - D[cj]);
i = k;
}
if(L[k] + D[k] + abs(L[ci] - D[ci]) > maxim && k!=ci)
{
maxim = L[k] + D[k] + abs(L[ci] - D[ci]);
i = k;
j = ci;
}
}
fout << maxim;
return 0;
}