题解 | #聊天#

聊天

https://www.nowcoder.com/practice/8b678c5ec9a94b02b3a09ada6ac8a16f

#include <iostream>
#include <bitset>
using namespace std;

int main() {
    bitset<2000> forA;
    bitset<2000> forB;
    int p, q, l, r;
    while(cin >> p >> q >> l >> r){
        int start, end;
        for(int i = 0; i < p; ++i){
            cin >> start >> end;
            for(int j = start; j <= end; ++j)
                forA.set(j);
        }
        for(int i = 0; i < q; ++i){
            cin >> start >> end;
            for(int j = start; j <= end; ++j)
                forB.set(j);
        }
        int ans = 0;
        forB <<= l;
        for(int i = 0; i <= r - l; ++i){
            bitset<2000> cur = forA & forB;
            if(cur.any())
                ans++;
            forB <<= 1;
        }
        cout << ans << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务