Cod sursa(job #1585907)

Utilizator mihai.constantinConstantin Mihai mihai.constantin Data 31 ianuarie 2016 16:21:35
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

ifstream in("orase.in");
ofstream out("orase.out");

const int dmax = 50000;

struct ELEMENT {int d, L;};
ELEMENT m[dmax + 1];

int Dist_max;

int M, N;

bool exc(ELEMENT e1, ELEMENT e2)
{
    if(e1.d == e2.d) return e1.L < e2.L;
    else
        return e1.d < e2.d;
}

int main()
{
    int i, j, dist;

    in >> M >> N;

    for(i = 1; i <= N; i++) in >> m[i].d >> m[i].L;

    sort(m + 1, m + N + 1, exc);

    j = 1;

    int j_max = 1;

    for(i = 1, j = 1; i <= N, j <= N; i++, j++)
    {
        dist = m[i].L + m[i].d + m[j_max].L - m[j_max].d;

        if(m[j].L - m[j].d > m[j_max].L - m[j_max].d) j_max = j;

        Dist_max = max(dist, Dist_max);
    }

    out << Dist_max;

    return 0;
}