제출 #633541

#제출 시각아이디문제언어결과실행 시간메모리
633541ojoConmigoKnapsack (NOI18_knapsack)C++17
12 / 100
1 ms320 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; struct Item{ ll v,w,k; bool operator<(const Item &rhs){ return ((ld)((ld)v/(ld)w) < (ld)((ld)rhs.v/(ld)rhs.w)); } }; int main(){ ios::sync_with_stdio(false); cin.tie(0); int s,n; cin >> s >> n; vector<Item> v(n+1); for(int i=1; i<=n; i++){ cin >> v[i].v >> v[i].w >> v[i].k; } sort(begin(v),end(v)); reverse(begin(v),end(v)); ll w = s; ll cont = 0; for(int i=0; i<n; i++){ ll lo = 0, hi = v[i].k, res = 0; while(lo <= hi){ ll mid = (lo+hi)/2; if(mid*v[i].w > w){ hi = mid-1; }else{ res = mid; lo = mid+1; } } w -= (res*v[i].w); cont += (res*v[i].v); } cout << cont << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...