2 solutions
-
0
斗胆把代码贴在这里,写的不好请多担待
#include<iostream> #include<algorithm> using namespace std; long long int n,m,ans; struct A{ int a,b; }p[27]; bool cmp(A x,A y){ return x.b>y.b; } int main(){ cin>>m>>n; for(int i=0;i<n;i++){ cin>>p[i].a>>p[i].b; } sort(p,p+n,cmp); int t=0; while(m){ if(p[t].a<m){ ans+=p[t].b*p[t].a; m-=p[t].a; } else { ans+=m*p[t].b; m=0; } t++; if(t==n)break; } cout<<ans; return 0; }
-
0
#include<bits/stdc++.h> using namespace std; int n,m; struct pp{ int a,b; }i[25]; bool cmp(pp j,pp k){ return j.b>k.b; } int main() { cin>>n>>m; for(int c=0;c<m;c++) cin>>i[c].a>>i[c].b; sort(i,i+m,cmp); long long ans=0; for(int c=0;c<m;c++){ if(n>i[c].a){ ans+=i[c].a*i[c].b; n-=i[c].a; }else{ ans+=n*i[c].b; break; } } cout<<ans; return 0; }
- 1
Information
- ID
- 1896
- Time
- 1000ms
- Memory
- 64MiB
- Difficulty
- 6
- Tags
- # Submissions
- 56
- Accepted
- 17
- Uploaded By