codeforces-#469B. Chat Online(模拟)

来源:互联网 发布:生化危机5游戏知乎 编辑:程序博客网 时间:2024/05/17 22:39

       题目大意:两个人要聊天,一个人有固定的时间段,另一个人有一个浮动的时间段,会根据起床时间进行在[l,r]段内进行顺延。问有多少个时间段聊天。

       解题思路:直接暴力求解,O(n^3)都能够。详见code。

       题目来源:http://codeforces.com/problemset/problem/469/B

      code:

#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAXN = 50+5;int ab[MAXN][2],cd[MAXN][2];int p,q,l,r,ans,flag;int main(){    freopen("input.txt","r",stdin);    while(~scanf("%d%d%d%d",&p,&q,&l,&r)){        ans=0;        for(int i=0;i<p;++i)            scanf("%d%d",&ab[i][0],&ab[i][1]);        for(int i=0;i<q;++i)            scanf("%d%d",&cd[i][0],&cd[i][1]);        for(int i=l;i<=r;++i){            flag=0;            for(int j=0;j<p;++j){                for(int k=0;k<q;++k){                    int a=ab[j][0];                    int b=ab[j][1];                    int c=cd[k][0]+i;                    int d=cd[k][1]+i;                    if((c>=a && c<=b)||                       (d>=a && d<=b)||                       (a>=c && a<=d)){                            ans++;                            flag=1;                            break;                       }                }                if(flag)break;            }        }        printf("%d\n",ans);    }    return 0;}

0 0
原创粉丝点击