Cod sursa(job #1518713)

Utilizator mirupetPetcan Miruna mirupet Data 6 noiembrie 2015 10:32:16
Problema Orase Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<cstdio>
#include<algorithm>
#define DIM 50001
#define INF ( 1 << 30 )
#define Maxim(a, b) ( a >= b ? a : b )
using namespace std;

int N, M;
int i, sol = -INF, dis = - INF;
struct vec {int x, y;} v[DIM];

inline bool comp(vec a, vec b)
{
    if (a.x != b.x)
        return (a.x < b.x);
    return (a.y < b.y);
    //return ((a.x != b.x) ? (a.x < b.x) : (a.y < b.y));
}

int main()
    {
        freopen("orase.in","r",stdin);
        freopen("orase.out","w",stdout);

        scanf("%d%d", &M, &N);

        for(i = 1; i <= N; i++)
            scanf("%d %d", &v[i].x, &v[i].y);

        sort (v + 1, v + N + 1, comp);

        for (i = 1; i <= N; i++)
            printf("%d %d\n", v[i].x, v[i].y);
        printf("\n");

        for (i = 1; i <= N; i++)
        {
            sol = Maxim(sol, v[i].x + v[i].y + dis);
            dis = Maxim(dis, v[i].y - v[i].x);
        }

        printf("%d", sol);
    }