Milking Cows(USACO)

来源:互联网 发布:深圳冰川网络 市场策划 编辑:程序博客网 时间:2024/06/16 04:03

http://train.usaco.org/usacoprob2?S=milk2&a=GXRmdeaXtbb

思考:数组大小一定要开够

/*ID: emaguo1PROG: milk2LANG: C++11*/#include <iostream>#include <fstream>#include <string>#include <cstring>#include <map>#include <cstdio>#include <algorithm>using namespace std;struct time{    int t;    bool beleft;    time(int tt, bool bb) : t(tt), beleft(bb) {}    time() {}}Time[10050];int cmp(struct time a, struct time b){    if (a.t == b.t) {        if (a.beleft == true) return 1;        else return 0;    }    return a.t < b.t;}int main() {    freopen("milk2.in","r",stdin);    freopen("milk2.out","w",stdout);    memset (Time, 0, sizeof(Time));    int n, lmilkt = 0, lrelaxt = 0, tmilkt = 0, flag = 0;    scanf ("%d", &n);    int num = 0;    for (int i = 0; i < n; i++) {        int Begin, End;        scanf ("%d%d", &Begin, &End);        Time[num].t = Begin;        Time[num++].beleft = true;        Time[num].t = End;        Time[num++].beleft = false;    }    sort (Time, Time + num, cmp);    //printf ("%d %d\n", Time[0].t, Time[0].beleft);    flag = 1;    for (int i = 1; i < num; i++) {        //printf ("%d %d\n", Time[i].t, Time[i].beleft);        if (flag == 0) {            lrelaxt = max (lrelaxt, Time[i].t - Time[i - 1].t);            lmilkt = max (lmilkt, tmilkt);            tmilkt = 0;        } else {            tmilkt += Time[i].t - Time[i - 1].t;            lmilkt = max (lmilkt, tmilkt);        }        if (Time[i].beleft) flag++;        else flag--;    }    printf ("%d %d\n", lmilkt, lrelaxt);    return 0;}
0 0
原创粉丝点击