제출 #1014250

#제출 시각아이디문제언어결과실행 시간메모리
1014250matus192Knapsack (NOI18_knapsack)C++14
12 / 100
3 ms348 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define int ll signed main() { int s, n; cin >> s >> n; vector<vector<pair<int, int>>> items(s + 1); for (int i = 0; i < n; i++) { int val, w, amount; cin >> val >> w >> amount; items[w].push_back({val, amount}); } for (auto vec : items) { sort(vec.begin(), vec.end(), greater<pair<int, int>>()); } vector<int> prv(s + 1, 0), akt(s + 1, 0); for (int item = 1; item <= s; item++) { for (int weight = 0; weight <= s; weight++) { akt[weight] = prv[weight]; int val = 0, w = 0, group = 0, amo = 0; while (weight >= w + item) { if (items[item].size() <= group) break; if (items[item][group].second <= amo) { amo = 0; group++; continue; } val += items[item][group].first; w += item; amo++; akt[weight] = max(akt[weight], val + prv[weight - w]); } } prv = akt; } cout << akt[s] << '\n'; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

knapsack.cpp: In function 'int main()':
knapsack.cpp:27:40: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   27 |                 if (items[item].size() <= group) break;
      |                     ~~~~~~~~~~~~~~~~~~~^~~~~~~~
#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...