CodeForces479C Exams(贪心)

CodeForces479C Exams(贪心)

CodeForces479C

题目大意: 
有位同学参加N门考试,他希望能够提前的结束这N门考试,所以和各门科目的老师协商了一下,换一天考试Ai,然后他又希望成绩的录入时间是非递减的,成绩的录入时间是按照科目原本的考试时间。求最后一门科目的结束时间,越早越好。

解题思路: 
将原本的考试时间按照时间先后排序,如果两门课在同一天,那么自然是和老师协商的新的时间小的放前面,这样才能在满足录入时间非递减的情况下达成结束时间越早的目标。

代码:

#include <cstdio>
#include <algorithm>

using namespace std;

const int maxn = 5005;
struct exam {
    int a, b;
}e[maxn];

int cmp(const exam& e1, const exam& e2) {
    if (e1.a != e2.a)
        return e1.a < e2.a;
    return e1.b < e2.b;
}

int main () {

    int N;
    while (scanf("%d", &N) != EOF ) {

        for (int i = 0; i < N; i++)
            scanf ("%d%d", &e[i].a, &e[i].b);

        sort(e, e + N, cmp);

        int ans = 0;
        for (int i = 0; i < N; i++) {
            if (ans <= e[i].b)
                ans = e[i].b;
            else
                ans = e[i].a;
        }
        printf ("%d\n", ans);
    }
    return 0;
}

你可能感兴趣的:(CodeForces479C Exams(贪心))