您的位置:首页 > 编程语言 > Java开发

聊天(蘑菇街)-Java

2016-04-18 13:22 387 查看
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

输出描述:

输出答案个数

输入例子:

2 3 0 20

15 17

23 26

1 4

7 11

15 17

输出例子:

20

//总共就是可能发生重叠的4种情况
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()){
int p=in.nextInt();
int q=in.nextInt();
int l=in.nextInt();
int r=in.nextInt();

int a[][]=new int[p][2];
for(int i=0;i<p;i++){
a[i][0]=in.nextInt();
a[i][1]=in.nextInt();
}
int c[][]=new int[q][2];
for(int i=0;i<q;i++){
c[i][0]=in.nextInt();
c[i][1]=in.nextInt();
}
int s[]=new int[1000];
int total=0;
for(int t=l;t<=r;t++){
for(int i=0;i<p;i++){
for(int j=0;j<q;j++){
if(a[i][0]<=c[j][0]+t||a[i][1]<=c[j][1]+t||(a[i][0]>c[j][0]+t)&&(a[i][1]>=c[j][1]+t)||(a[i][0]<=c[j][0]+t)&&(a[i][1]<c[j][1]+t))
s[t]=1;
}
}
total=total+s[t];
}

System.out.println(total);

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: