差不多一个月没刷题,整个人都变蠢了。看清题目,看清题目,看清题目。。
题目连接:http://bak2.vjudge.net/contest/137185#problem/J
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef struct { int va,vo; }Point; Point a[105]; int compare(Point a,Point b) { return a.va>b.va; } int main() { int v,n,sum; while(scanf("%d",&v),v) { sum=0; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d%d",&a[i].va,&a[i].vo); sort(a,a+n,compare); for(int i=0;i<n;i++)//不小心手残变成i<=n,导致错误 { if(a[i].vo<=v) { sum+=a[i].va*a[i].vo; v-=a[i].vo; } else { sum+=a[i].va*v; break; } } printf("%d ",sum); } return 0; }