Cod sursa(job #1768494)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 30 septembrie 2016 22:50:05
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("orase.in");
ofstream fout("orase.out");
long long n,i,m,sol,x,maxim,sol1;
pair<int,int>v[50003];
int main(){
    fin>>m>>n;
    for(i=1;i<=n;i++){
        fin>>v[i].first>>v[i].second;
    }
    sort(v+1,v+n+1);
    sol=1;// cel mai indepartat oras depistat pana acum
    maxim=v[2].second+v[2].first-v[i].first+v[1].second;//distanta dintre cele mai indepartate orase gasite pana acum
    sol1=2;//orasul care a dat maximul cu sol
    for(i=3;i<=n;i++){
        if(v[i].first-v[i-1].first+v[i-1].second<=v[i].first-v[sol].first+v[sol].second){
            if(v[i].first-v[sol1].first+v[i].second>=v[sol1].second){
                sol1=i;
                maxim=v[i].second+v[i].first-v[sol].first+v[sol].second;
            }
        }
        else{
            sol=i-1;
            sol1=i;
            maxim=v[i].first-v[i-1].first+v[i-1].second+v[i].second;
        }
    }
    fout<<maxim;
    return 0;

}