Codeforces 479C Exams(贪心)

题目链接:Codeforces 479C Exams

题目大意:期末考试了,有个人希望尽快考完所有的科目,于是和每个科任老师单独沟通,最后每个科任老师愿意给额

外给定一个时间单独给她考试,错过则只能按普通时间考试。不过,他考试的顺序必须和正常考试顺序一样。

解题思路:先按照正常考试的时间排序ai,ai相同的将bi小的放在前面,然后遍历一遍,用一个变量维护当前日期,如果

当前日期小于等于bi的话,即为bi,否则即为错过单独考试时间,只能等ai。

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
const int maxn = 5005;

struct state {
    int ai, bi;
}s[maxn];
int N;

inline bool cmp (const state& a, const state& b) {
    if (a.ai != b.ai)
        return a.ai < b.ai;
    return a.bi < b.bi;
}

int main () {
    scanf("%d", &N);
    for (int i = 0; i < N; i++)
        scanf("%d%d", &s[i].ai, &s[i].bi);
    sort(s, s + N, cmp);

    int ans = s[0].bi;
    for (int i = 1; i < N; i++) {
        if (s[i].bi >= ans)
            ans = s[i].bi;
        else
            ans = s[i].ai;
    }
    printf("%d\n", ans);
    return 0;
}

你可能感兴趣的:(Codeforces 479C Exams(贪心))