제출 #1295572

#제출 시각아이디문제언어결과실행 시간메모리
1295572michaeltaranikKnapsack (NOI18_knapsack)C++17
73 / 100
1096 ms580 KiB
#include <stdio.h> #include <limits.h> typedef long long ll; #define MAX_S 10001 // Adjust based on your maximum expected 's' value void solve() { int s, n; scanf("%d %d", &s, &n); ll dp[MAX_S] = {0}; // Initialize all to 0 for (int i = 0; i < n; ++i) { int w; ll v, q; scanf("%lld %d %lld", &v, &w, &q); // binary optimization for (ll k = 1; q > 0; k <<= 1) { ll take = (k < q) ? k : q; ll chunkV = take * v; ll chunkW = take * w; if (chunkW <= s) { for (int j = s; j >= chunkW; --j) { if (dp[j - chunkW] + chunkV > dp[j]) { dp[j] = dp[j - chunkW] + chunkV; } } } q -= take; } } printf("%lld\n", dp[s]); } int main() { solve(); return 0; }

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

knapsack.cpp: In function 'void solve()':
knapsack.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     scanf("%d %d", &s, &n);
      |     ~~~~~^~~~~~~~~~~~~~~~~
knapsack.cpp:17:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |         scanf("%lld %d %lld", &v, &w, &q);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...