首页 > 代码库 > 51NOD 1099 任务执行顺序

51NOD 1099 任务执行顺序

来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1099

 

前天没睡好 昨天做题闷闷沉沉的

好多一眼题 都瞎做了

 

这题今天早上发现其实  让执行空间大的 存储空间小的 先存储 这样有效空间就最大就好了

 

#include<bits/stdc++.h>using namespace std;const int maxn = 100000+10;struct node{    int l,r;}s[maxn];bool cmp(node a,node b){    if(a.l-a.r != b.l-b.r)    return a.l-a.r > b.l-b.r;    return a.l > b.l;}int main (){    //freopen("in.txt","r",stdin);    //freopen("out.txt","w",stdout);    int n;    scanf("%d ",&n);    for(int i=0;i<n;i++)        scanf("%d %d",&s[i].l,&s[i].r);    sort(s,s+n,cmp);    //for(int i=0;i<n;i++){     //   printf("%d %d\n",s[i].l,s[i].r);    //}   // printf("\n");    int sum =0 ,res = 0;    for(int i=0;i<n;i++)    {        if(sum < s[i].l)        {            res += s[i].l -sum;//总空间要扩大            sum = s[i].l;        }        sum = sum - s[i].r;    }    printf("%d\n",res);}

 

51NOD 1099 任务执行顺序