Cod sursa(job #1764764)

Utilizator SirbuSirbu Ioan Sirbu Data 25 septembrie 2016 21:09:54
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("orase.in");
ofstream fout ("orase.out");

struct Oras
{
  int stanga;
  int dreapta;
}v[50002];

bool comp (Oras stg, Oras drp)
{
  if (stg.stanga==drp.stanga) return stg.dreapta < drp.dreapta;
  return stg.stanga < drp.stanga;
}


int main()
{
     int n,m;
     fin >> m >> n;
     for (int i=1;i<=n;i++) fin >> v[i].stanga >> v[i].dreapta;
     sort (v+1,v+n+1,comp);
     int MaxDif=v[1].dreapta-v[1].stanga;
     int Drum=0;
     for (int i=2;i<=n;i++)
     {
       if (MaxDif+v[i].stanga+v[i].dreapta>Drum) Drum=MaxDif+v[i].stanga+v[i].dreapta;
       if (v[i].dreapta-v[i].stanga>MaxDif) MaxDif=v[i].dreapta-v[i].stanga;
     }

     fout << Drum << "\n";

}