Cod sursa(job #479767)
# include <algorithm>
using namespace std;
const char FIN[] = "orase.in", FOU[] = "orase.out" ;
# define D first
# define L second
pair < int , int > V[50005], maxi ;
int M, N, rez ;
int main() {
freopen ( FIN, "r", stdin ) ;
scanf ( "%d %d", &M, &N ) ;;
for ( int i = 1; i <= N; ++i ) {
scanf ( "%d %d", &V[i].D, &V[i].L ) ;
}
sort ( V + 1, V + N + 1 ) ;
maxi.D = V[1].D, maxi.L = V[1].L;
for ( int i = 2; i <= N; ++i ) {
int part = V[i].L + V[i].D + maxi.L - maxi.D ;
if ( part > rez ) {
rez = part ;
}
if ( V[i].L - V[i].D > maxi.L - maxi.D ) {
maxi.L = V[i].L, maxi.D = V[i].D ;
}
}
fprintf ( fopen ( FOU, "w" ) , "%d" , rez ) ;
return 0;
}