1 solutions
-
0
C++ :
#include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm> using namespace std; struct pos { int cost; int num; }f[10001]; int cmp(pos i,pos j) { if(i.cost==j.cost) { return i.num>j.num; } else { return i.cost<j.cost; } } int main() { int m,n; cin>>m>>n; for(int i=1;i<=n;++i) { cin>>f[i].cost>>f[i].num; } sort(f+1,f+n+1,cmp); long long ans=0; for(int i=1;i<=n;++i) { while(m!=0&&f[i].num!=0) { --m; ans=ans+f[i].cost; --f[i].num; } if(m==0) { break; } } cout<<ans; return 0; }
- 1
Information
- ID
- 700
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By