Cod sursa(job #3310427)

Utilizator LucaEnescuLuca Enescu LucaEnescu Data 13 septembrie 2025 19:34:40
Problema Orase Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <bits/stdc++.h>

using namespace std;
using int64 = long long;
const int N_MAX = 6e6;
const int64 myINF = 3e9;

struct T{
    int d;
    int l;
}v[N_MAX+1];
int vdif[N_MAX+1];
bool cmp (T first, T second) {
    if(first.d < second.d)
        return true;
     else
        return false;
     if(first.l<second.l)
        return true;
     else
        return false;
}

ifstream fin ("orase.in");
ofstream fout ("orase.out");
int main()
{
   int n,m,dd,ll;
   fin >> m >> n;;
   for (int i = 1; i <= n; i ++){
        fin >> dd;
        v[i].d=dd;
        fin >> ll;
        v[i].l=ll;
   }
    sort ( 1+ v, 1+v+n, cmp);
    vdif[1]=v[1].d-v[1].l;
    for(int i=2;i<=n;i++){
        vdif[i]=min(vdif[i-1],v[i].d-v[i].l);
    }

   int64 sum = 0, min_sum = 0; int j = 1;
   int64 answer = -myINF; int left, right;

   for (int i = 1; i <=  n; i ++) {
      int64 candidate = v[i].d + v[i].l + vdif[i];
      if (candidate > answer) {
        answer = candidate;
        left = j;
        right = i;
      }
      else if (candidate == answer && j < left) {
        left = j;
        right = i;
      }


   }
   fout << answer ;
    return 0;
}