期望得分:100+40+100=240

实际得分:50+40+20=110

T1 start取了min没有用,w(゚Д゚)w    O(≧口≦)O  

T3 代码3个bug :数组开小了,一个细节没注意,手抖打错变量。。。

细节处理很重要啊!!!!

 

 

2017 10.25 NOIP模拟赛

贪心,按结束时间排序

#include<cstdio>
#include<iostream>
#include<algorithm>

using namespace std;

#define N 100001

struct node
{
    int t,s;
}e[N];

void read(int &x)
{
    x=0; char c=getchar();
    while(!isdigit(c)) c=getchar();
    while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
}

bool cmp(node p,node q)
{
    return p.s>q.s;
}

int main()
{
    freopen("manage.in","r",stdin);
    freopen("manage.out","w",stdout);
    int n;
    read(n);
    for(int i=1;i<=n;i++) read(e[i].t),read(e[i].s);
    sort(e+1,e+n+1,cmp);
    int now=2e9,start;
    for(int i=1;i<=n;i++)
    {
        start=min(now,e[i].s);
        now=start-e[i].t;
    }
    if(now>=0) printf("%d",now);
    else printf("-1");
} 
View Code

相关文章: