Submission #1304657

#TimeUsernameProblemLanguageResultExecution timeMemory
1304657alex0152Knapsack (NOI18_knapsack)C++20
100 / 100
42 ms1724 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const int nMax=2e3+5,MOD=998244353; ll t,n,m,k,x,y,z,a,b,c,d,cnt,ans,rez,sum,poz,p1,p2; ll mat[21][21],dp[nMax]; bool ok; char ch; string s; unordered_map<ll,int>mp[21][21]; vector<array<int,2>>adj[nMax]; int main() { ios_base::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>k>>n; for(int i=1; i<=n; ++i) { cin>>a>>b>>c; adj[b].push_back({a,c}); } for(int i=1; i<=k; ++i) { sort(adj[i].rbegin(),adj[i].rend()); x=0,y=0; for(auto it : adj[i]) { x=it[0]; if(y>k) break; for(int j=1; y+i<=k && j<=it[1]; ++j) { y+=i; for(int p=k; p>=i; --p) { dp[p]=max(dp[p],dp[p-i]+x); ans=max(dp[p],ans); } } } } cout<<ans<<'\n'; }

Compilation message (stderr)

knapsack.cpp: In function 'int main()':
knapsack.cpp:21:27: warning: narrowing conversion of 'a' from 'long long int' to 'int' [-Wnarrowing]
   21 |         adj[b].push_back({a,c});
      |                           ^
knapsack.cpp:21:29: warning: narrowing conversion of 'c' from 'long long int' to 'int' [-Wnarrowing]
   21 |         adj[b].push_back({a,c});
      |                             ^
#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...