1 solutions
-
0
C :
#include<stdio.h> int main(){ int n,m,i,j,x[5005][2],temp; while(scanf("%d%d",&m,&n)==2){ for(i=0;i<n;i++) scanf("%d%d",&x[i][0],&x[i][1]); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(x[i][0]>x[j][0]){ temp=x[i][0]; x[i][0]=x[j][0]; x[j][0]=temp; temp=x[i][1]; x[i][1]=x[j][1]; x[j][1]=temp; } temp=0; for(i=0;i<n;i++){ if(x[i][1]<=m){ m-=x[i][1]; temp+=x[i][1]*x[i][0]; }else{ temp+=m*x[i][0]; m=0; } if(m==0)break; } printf("%d\n",temp);} return 0; }C++ :
#include<stdio.h> struct node { int pi,ai; }; node a[5001]; int dfs(int as,int ad) { if (as<=a[ad].ai) return as*a[ad].pi; return dfs(as-a[ad].ai,ad+1)+a[ad].ai*a[ad].pi; } int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for (int i=1;i<=m;i++) scanf("%d%d",&a[i].pi,&a[i].ai); for (int i=1;i<=m;i++) for (int j=i+1;j<=m;j++) { node c; if (a[i].pi>a[j].pi) { c=a[i];a[i]=a[j];a[j]=c; } } printf("%d\n",dfs(n,1)); } return 0; }
- 1
Information
- ID
- 16485
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By