Submission #1088134

#TimeUsernameProblemLanguageResultExecution timeMemory
1088134NurislamKnapsack (NOI18_knapsack)C++14
100 / 100
54 ms7880 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define ff first #define ss second #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define int long long template <class F, class _S> bool chmin(F &u, const _S &v){ bool flag = false; if ( u > v ){ u = v; flag |= true; } return flag; } template <class F, class _S> bool chmax(F &u, const _S &v){ bool flag = false; if ( u < v ){ u = v; flag |= true; } return flag; } const int N = 1e6+50, inf = 1e17; //int mod = 998244353 //int mod = 1000000007; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); #define rnd(l, r) uniform_int_distribution <int> (l, r)(rng) struct line{ int m, c; line(int _m,int _c) : m(_m), c(_c){ }; int calc(int x){ return m * x + c; }; double xnt(line & other){ return (double)(c - other.c)/(m - other.m); }; }; void solve(){ int s, n; cin >> s >> n; vector<array<int,3>> v(n); for(auto &i:v) cin >> i[0] >> i[1] >> i[2]; map<int,vector<array<int,2>> > mp; for(auto i:v)mp[i[1]].pb({i[0], i[2]}); for(auto &[id, ve]:mp)sort(rall(ve)); vector<int> dp(s+5, 0); for(auto [we, ve]:mp){//2000 int mx = s/we; int id = 0; int cnt = 0; int sz = ve.size();//loglog(2000) while(id < sz && cnt < mx){ for(int i = s; i >= we; i--){//2000 chmax(dp[i], dp[i-we] + ve[id][0]); } ve[id][1]--; if(ve[id][1] == 0)id++; cnt++; } } cout << *max_element(all(dp)) << '\n'; //4000loglog(2000); } signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int tt = 1; //cin >> tt; while(tt--){ solve(); } }

Compilation message (stderr)

knapsack.cpp: In function 'void solve()':
knapsack.cpp:59:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   59 |  for(auto &[id, ve]:mp)sort(rall(ve));
      |            ^
knapsack.cpp:62:11: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   62 |  for(auto [we, ve]:mp){//2000
      |           ^
#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...