Pagini recente » Cod sursa (job #3291417) | Cod sursa (job #3155696) | Cod sursa (job #3280234) | Cod sursa (job #1281945) | Cod sursa (job #3290500)
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static class MyScanner implements Closeable {
BufferedReader br;
StringTokenizer st;
public MyScanner(String file) throws FileNotFoundException {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
}
String next() {
while (st == null || !st.hasMoreElements()) {
try {
st = new StringTokenizer(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
return st.nextToken();
}
int nextInt() {
return Integer.parseInt(next());
}
long nextLong() {
return Long.parseLong(next());
}
double nextDouble() {
return Double.parseDouble(next());
}
String nextLine(){
String str = "";
try {
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
@Override
public void close() throws IOException {
br.close();
}
}
public static class Pair {
public int d;
public int l;
public Pair(int d, int l) {
this.d = d;
this.l = l;
}
}
public static void main(String[] args) throws IOException {
try (MyScanner scanner = new MyScanner("orase.in");
PrintWriter pw = new PrintWriter(new FileOutputStream("orase.out"))) {
scanner.nextInt();
int N = scanner.nextInt();
Pair[] pairs = new Pair[N+1];
for (int i = 1; i <= N; i++) {
pairs[i] = new Pair(scanner.nextInt(), scanner.nextInt());
}
Arrays.sort(pairs, 1, N+1, (pairLeft, pairRight) -> {
if (pairLeft.d == pairRight.d) {
return pairRight.l - pairLeft.l;
}
return pairLeft.d - pairRight.d;
});
int maxBest = pairs[1].l - pairs[1].d;
int maxDist = Integer.MIN_VALUE;
for (int i = 2; i <= N; i++) {
maxDist = Math.max(maxDist, pairs[i].l + pairs[i].d + maxBest);
if (maxBest < pairs[i].l - pairs[i].d) {
maxBest = pairs[i].l - pairs[i].d;
}
}
pw.println(maxDist);
}
}
}