蘑菇街 聊天

来源:互联网 发布:网络咨询护士压力大吗 编辑:程序博客网 时间:2024/05/17 04:46

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

public class Main {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        while (scan.hasNext()) {            int p = scan.nextInt();            int q = scan.nextInt();            int l = scan.nextInt();            int r = scan.nextInt();            int[][] a = new int[p][2];            int[][] b = new int[q][2];            for (int i = 0; i < p; i++) {                a[i][0] = scan.nextInt();                a[i][1] = scan.nextInt();            }            for (int i = 0; i < q; i++) {                b[i][0] = scan.nextInt();                b[i][1] = scan.nextInt();            }            int count = 0;            for (int i = l; i <= r; i++) {                if (sovle(a,b,i)) {                    ++count;                }            }            System.out.println(count);        }        scan.close();    }    private static boolean sovle(int[][] a, int[][] b,int t) {        for (int i = 0, lena = a.length; i < lena; i++) {            for (int j = 0, lenb = b.length; j < lenb; j++) {                if (!(a[i][1] < b[j][0] + t) || ! (b[j][0] + t < a[i][0])) {                    return true;                }            }        }        return false;    }}
0 0
原创粉丝点击