201809-2_买菜
时间限制: 1.0s
内存限制: 256.0MB
问题描述
- 小 H H H和小 W W W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买 n n n种菜,所以也都要装 n n n次车。具体的,对于小H来说有 n n n个不相交的时间段 [ a 1 , b 1 ] , [ a 2 , b 2 ] . . . [ a n , b n ] [a_1,b_1],[a_2,b_2]...[a_n,b_n] [a1,b1],[a2,b2]...[an,bn]在装车,对于小W来说有n个不相交的时间段 [ c 1 , d 1 ] , [ c 2 , d 2 ] . . . [ c n , d n ] [c_1,d_1],[c_2,d_2]...[c_n,d_n] [c1,d1],[c2,d2]...[cn,dn]在装车。其中,一个时间段 [ s , t ] [s, t] [s,t]表示的是从时刻s到时刻t这段时间,时长为 t − s t-s t−s。
- 由于他们是好朋友,他们都在广场上装车的时候会聊天,他们想知道他们可以聊多长时间。
输入格式
- 输入的第一行包含一个正整数 n n n,表示时间段的数量。
- 接下来n行每行两个数 a i , b i a_i,b_i ai,bi,描述小 H H H的各个装车的时间段。
- 接下来n行每行两个数 c i , d i c_i,d_i ci,di,描述小 W W W的各个装车的时间段。
输出格式
- 输出一行,一个正整数,表示两人可以聊多长时间。
样例输入
4
1 3
5 6
9 13
14 15
2 4
5 7
10 11
13 14
样例输出
3
数据规模和约定
对于所有的评测用例, 1 ≤ n ≤ 2000 , a i < b i < a i + 1 , c i < d i < c i + 1 1 ≤ n ≤ 2000, a_i < b_i < a_{i+1},c_i < d_i < c_{i+1} 1≤n≤2000,ai<bi<ai+1,ci<di<ci+1,对于所有的 i ( 1 ≤ i ≤ n ) i(1 ≤ i ≤ n) i(1≤i≤n)有, 1 ≤ a i , b i , c i , d i ≤ 1000000 。 1 ≤ a_i, b_i, c_i, d_i ≤ 1000000。 1≤ai,bi,ci,di≤1000000。
代码1(啥也不是)
import java.util.Scanner;
public class Main {
static boolean[] H,W;
static int N,s,t,Max=1000000;
public static void main(String[] args) {
int ans=0;
Scanner sc=new Scanner(System.in);
N=sc.nextInt();
H=new boolean[Max];
W=new boolean[Max];
for(int i=0;i<2*N;i++) {
s=sc.nextInt();
t=sc.nextInt();
if(i<N) {
record(H);
}else {
record(W);
}
}
sc.close();
for(int i=0;i<Max;i++) {
if(H[i] && W[i]) {
ans++;
}
}//求和
System.out.print(ans);
}
static void record(boolean[] time) {
for(int j=s-1;j<t-1;j++) {
time[j]=true;
}
}//记录数据
}