각 금속의 무게, 무게당 가격 -> 배낭에 채울 수 있는 가장 값비싼 가격은?
첫 줄에 배낭의 무게 W, 금속의 무게 N
둘째 줄부터 무게 M, 무게 당 가격 P
#include<iostream>
#include<unordered_map>
using namespace std;
int main(int argc, char** argv)
{
int answer = 0;
int w, n;
cin >> w >> n;
unordered_map<int,int> umap;
int max = 0;
int m,p;
for(int i=0;i<n;i++){
cin >> m >> p;
umap[p] += m;
if(max < p) max=p;
}
while(w!=0){
if(w >= umap[max]){
answer += umap[max] * max;
w -= umap[max];
umap.erase(max);
max=0;
for(auto findmax : umap){
if(findmax.first>max) max = findmax.first;
}
}
else{
answer += w * max;
break;
}
}
cout <<answer;
return 0;
}