Submission #1065906

#TimeUsernameProblemLanguageResultExecution timeMemory
1065906chaoslongKnapsack (NOI18_knapsack)C++14
29 / 100
2 ms604 KiB
// Calm down. // Think three times, code twice. #include "bits/stdc++.h" #define forr(_a,_b,_c) for(int _a = (_b); _a <= (_c); ++_a) #define ford(_a,_b,_c) for(int _a = (_b) + 1; _a --> (_c);) #define forf(_a,_b,_c) for(int _a = (_b); _a < (_c); ++_a) #define st first #define nd second #define ll long long #define ull unsigned long long #define pii pair <int,int> #define pll pair <ll,ll> #define piii pair <int,pii> #define vi vector <int> #define pb push_back #define mp make_pair #define all(x) begin(x),end(x) #define mask(i) (1LL << (i)) #define bit(x, i) (((x) >> (i)) & 1) #define bp __builtin_popcountll #define file "test" using namespace std; const int N = 2e5 + 5; const int mod = 1e9 + 7; // 998244353 const ll oo = 1e18; vector<pll> a[2005]; ll s, n, dp[2005]; void to_nho_cau() { cin >> s >> n; forr(i, 1, n) { ll v, w, k; cin >> v >> w >> k; a[w].pb({v, k}); } forr(i, 1, s) { if(a[i].size()) sort(all(a[i]), greater<>()); } forr(i, 1, s) { if(a[i].empty()) continue; ford(j, s, 1) { ll cur = 0, cur_val = 0, sl = 0; forr(k, 0, a[i].size()-1) { int tmp = min((j - cur) / i, a[i][k].nd); cur_val += tmp * a[i][k].st; cur += tmp * i; sl += a[i][k].nd; // cout << i << " " << j << " " << cur << " " << cur_val << "\n"; dp[j] = max(dp[j], dp[j - cur] + cur_val); if(sl > j / i) break; } } } ll ans = 0; forr(i, 1, s) ans = max(ans, dp[i]); cout << ans << "\n"; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0); #ifdef LOCAL freopen(file".inp","r",stdin); freopen(file".out","w",stdout); #endif int t = 1; //cin >> t; while(t--) to_nho_cau(); } /* 1.self check: 2.long long 3.size of array 4.code for testing 5.initializing 6.modulo number */ /** ∧__∧ (`•ω• )づ__∧ (つ  /( •ω•。) しーJ (nnノ) pat pat **/ /** /\_/\ * (= ._.) * / >☕ \>💻 **/ /** ・*・ ∧,,∧ ∧_∧ ・*・ '.  ( 。・ω・)(・ω・。 )  .'  '・ | つ♥と |.・' *'***** '* **/

Compilation message (stderr)

knapsack.cpp:85:9: warning: "/*" within comment [-Wcomment]
   85 | /**  /\_/\
      |          
knapsack.cpp: In function 'void to_nho_cau()':
knapsack.cpp:4:46: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    4 | #define forr(_a,_b,_c) for(int _a = (_b); _a <= (_c); ++_a)
      |                                              ^
knapsack.cpp:45:13: note: in expansion of macro 'forr'
   45 |             forr(k, 0, a[i].size()-1) {
      |             ^~~~
#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...