nyoj 757 期末考试 【STL 优先队列】

来源:互联网 发布:夏亚大魔数据 编辑:程序博客网 时间:2024/05/17 03:36

期末考试

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述
马上就要考试了,小T有许多作业要做,而且每个老师都给出来了作业要交的期限,如果在规定的期限内没
交作业就会扣期末成绩的分数,假设完成每门功课需要一天的时间,你能帮助小T扣除的分数最小吗?
输入
输入n,表示n门功课(n<2000),接下来n行,每行两个数a,b,分别表示交作业的最后期限,迟交扣除的分数。
(以文件结尾)
输出
输出扣除的最小分数。
样例输入
33 103 53 131 63 21 371 34 26 14 72 64 53 4
样例输出
035


代码:


#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>#include<queue>using namespace std;struct record{int date;int score;friend bool operator<(record a,record b){return a.score<b.score;}};int main(){int n,i,j,a,b,vis[1000];record t;priority_queue<record>q;while(scanf("%d",&n)!=EOF){memset(vis,0,sizeof(vis));for(i=0;i<n;i++){scanf("%d%d",&a,&b);t.date=a;t.score=b;q.push(t);}int sum=0;for(i=0;i<n;i++){t=q.top();q.pop();for(j=t.date;j>=1;j--){if(vis[j]==0){vis[j]=1;break;}}if(j==0)sum+=t.score;}printf("%d\n",sum);}return 0;}


0 0