hdu 2111
#include <iostream> #include <algorithm> using namespace std; struct money { int s; int v; }; bool cmp(money a,money b) { return a.s>b.s; } int main() { money M[101]; int n,m,i; while(cin>>n&&n) { int sum=0; cin>>m; for(i=1;i<=m;i++) cin>>M[i].s>>M[i].v; sort(M,M+m,cmp); //for(i=0;i<m;i++) // cout<<M[i].s<<" "<<M[i].v<<endl; /* int nn=0; for(i=1;i<=m;i++) { if(nn<n&&nn+M[i].v<=n) {nn+=M[i].v; sum+=M[i].s*M[i].v;continue;} if(nn<n&&nn+M[i].v>n) {sum+=M[i].s*(n-nn);break;} }*/ for(i=0;i<m;i++) { if(M[i].v<n) {n-=M[i].v; sum+=M[i].s*M[i].v;} else {sum+=M[i].s*n;break;} } cout<<sum<<endl; } return 0; }
//hdu 2111
这道题我要单独拿出来,真心蛋疼。。。。。一直在看哪里错了,cmp函数里面写了< O__O"… 还有以前写过这样的题啊,很简单的,可是为什么现在要想那么久啊。。。。