两个整数L(1<=L<=10000)和M(1<=M<=100)。 接下来有M组整数,每组有一对数字。
可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。
500 3 100 200 150 300 470 471
298
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
while ((s = br.readLine()) != null) {
String[] ss = s.split(" ");
int L = Integer.parseInt(ss[0]);
int M = Integer.parseInt(ss[1]);
int[] way = new int[L+1];
Arrays.fill(way, 1);//默认种满了树
for (int i = 0; i < M; i++) {
String[] str = br.readLine().split(" ");
int start = Integer.parseInt(str[0]);
int end = Integer.parseInt(str[1]);
for (int j = start; j <= end; j++) {
way[j] = 0;
}
}
int cout = 0;
for (int i = 0; i < L+1; i++) {
if (way[i] != 0) cout++;
}
System.out.println(cout);
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int l = scanner.nextInt();
int m = scanner.nextInt();
int[] record = new int[l + 1];
for (int i = 0; i < m; i++) {
int x = scanner.nextInt();
int y = scanner.nextInt();
for (int j = x; j <=y ; j++) {
record[j]=1;
}
}
int count=0;
for (int i = 0; i <= l; i++) {
if (record[i]==0)
count++;
}
System.out.println(count);
}
} import java.util.*;
class Interval implements Comparable<Interval> {
private int start;
private int end;
public Interval(int s, int e) {
start = s;
end = e;
}
public int getStart() {
return start;
}
public int getEnd() {
return end;
}
public int compareTo(Interval other) {
if (start == other.start) {
return end - other.end;
}
return start - other.start;
}
}
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
while (reader.hasNext()) {
ArrayList<Interval> intervals = new ArrayList<>();
int L = reader.nextInt();
int M = reader.nextInt();
for (int i = 0; i < M; ++i) {
int start = reader.nextInt();
int end = reader.nextInt();
intervals.add(new Interval(start, end));
}
Collections.sort(intervals);
int prev_end = intervals.get(0).getEnd();
int prev_start = intervals.get(0).getStart();
int sum = prev_end - prev_start;
for (int i = 1; i < intervals.size(); ++i) {
if (intervals.get(i).getStart() < prev_end) {
if (intervals.get(i).getEnd() > prev_end) {
sum += intervals.get(i).getEnd() - prev_end;
}
} else {
sum += intervals.get(i).getEnd() - intervals.get(i).getStart() + 1;
}
prev_end = Math.max(intervals.get(i).getEnd(), prev_end);
}
System.out.println(L - sum);
}
}
}