Cod sursa(job #1773864)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 8 octombrie 2016 12:18:23
Problema Orase Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>

using namespace std;

FILE *in,*out;
const int N = 500001;
pair <int,int> v[N];

int main()
{
    in = fopen("orase.in","r");
    out = fopen("orase.out","w");
    /*for(i = 1;i <= n;i ++)
    {
        if(d[i] + l[i])
            dst = d[i] + l[i];
        if(m-d[i] + l[i] >ddr)
            ddr = m - d[i] + l[i];
    }
    //raspuns dst + ddr - m;
    //solutie alternativa
    */
    int i,n,m,u,dmax,dc;
    fscanf(in,"%d %d",&n,&m);
    for(i = 1;i < n;i ++)
    {
        fscanf(in,"%d %d",&v[i].first,&v[i].second);
    }
    sort(v,v+n);
    u = 0;
    dmax = -99999;
    for(i = 1;i < n;i ++)
    {
        dc = v[i].first - v[u].first + v[i].second + v[u].second;
        if(dc > dmax) dmax = dc;
        if(v[i].second > v[i].first - v[u].first + v[u].second)
            u = i;
    }
    fprintf(out,"%d",dmax);
    return 0;
}