B. Anton and Classes

题目链接

Codeforces Round #404 (Div. 2)--B. Anton and Classes

题解

简单题,题意大概是给出两组时间区间,从这两组时间区间中各选一组来使它们中间的空闲时间最大,求空闲时间的最大值。
从第一组中找到结束时间最早与开始时间最晚的,分别于第二组开始时间最晚的和结束时间最早的做差,取较大值。

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF=1<<30;
int n,m;
int minn,maxn,minm,maxm;
int q1,q2;
int main() {
    cin>>n;
    minn=minm=INF;
    for (int i=1;i<=n;i++){
        cin>>q1>>q2;
        minn=min(q2,minn);
        maxn=max(q1,maxn);
    }
    cin>>m;
    for (int i=1;i<=m;i++){
        cin>>q1>>q2;
        minm=min(q2,minm);
        maxm=max(q1,maxm);
    }
    cout<<max(max(maxn-minm,maxm-minn),0)<<endl;
}

标签: sortings, greedy

添加新评论