安徽动漫公司 网站制作 安徽网新网络小说排行榜
描述
A和B是好友,他们经常在空闲时间聊天,A的空闲时间为[a1 ,b1 ],[a2 ,b2 ]..[ap ,bp ]。B的空闲时间是[c1 +t,d1 +t]..[cq +t,dq +t],这里t为B的起床时间。这些时间包括了边界点。B的起床时间为[l,r]的一个时刻。若一个起床时间能使两人在任一时刻聊天,那么这个时间就是合适的,问有多少个合适的起床时间?
输入描述:
第一行数据四个整数:p,q,l,r(1≤p,q≤50,0≤l≤r≤1000)。接下来p行数据每一行有一对整数ai,bi(0≤aii+1>bi,ci+1>di
输出描述:
输出答案个数
示例1
输入:
2 3 0 20 15 17 23 26 1 4 7 11 15 17
输出:
20
以下是一个使用 Java 编写的程序,用于计算给定时间段内两个好友的空闲时间重叠的起床时间的数量。
```java
import java.util.Scanner;
public class FriendChatTime {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int p = scanner.nextInt();
int q = scanner.nextInt();
int l = scanner.nextInt();
int r = scanner.nextInt();
int[][] a = new int[p][2];
int[][] b = new int[q][2];
for (int i = 0; i < p; i++) {
a[i][0] = scanner.nextInt();
a[i][1] = scanner.nextInt();
}
for (int i = 0; i < q; i++) {
b[i][0] = scanner.nextInt() + l;
b[i][1] = scanner.nextInt() + l;
}
int count = 0;
for (int i = 0; i < p; i++) {
for (int j = 0; j < q; j++) {
if (a[i][0] <= b[j][1] && a[i][1] >= b[j][0]) {
count++;
}
}
}
System.out.println(count);
}
}
```
要运行此程序,请将代码粘贴到 Java 编译器中,然后输入一个整数 p(1 <= p <= 50),表示 A 的空闲时间段数量,接着输入一个整数 q(1 <= q <= 50),表示 B 的空闲时间段数量,然后输入两个整数 l 和 r(0 <= l <= r <= 1000),表示 B 的起床时间范围。接下来输入 p 个整数对,表示 A 的空闲时间段,然后输入 q 个整数对,表示 B 的空闲时间段。程序将输出合适的起床时间的数量。