Submission #447727

#TimeUsernameProblemLanguageResultExecution timeMemory
447727LptN21Knapsack (NOI18_knapsack)C++14
100 / 100
67 ms3668 KiB
#include <bits/stdc++.h> using namespace std; #define fastIO ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL); #define FF first #define SS second #define pb push_back #define sz(x) (int)x.size() #define PI acos(-1.0) #define lb lower_bound #define ub upper_bound #define all(a) (a).begin(), (a).end() #define odd(x) __builtin_parity((int)x) #define cntbit(x) __builtin_popcount(x) typedef long long ll; typedef pair<int, int> ii; const int N = 2e3+7, M=5; const int MOD = 998244353; const int oo = 1e9; int n, m, k, t; int _dp[N]; vector<ii> cmp[N]; signed main() { //freopen("test.inp", "r", stdin); //freopen("test.out", "w", stdout); //fastIO; scanf("%d%d", &m, &n); int ans=0; for(int j, i=1;i<=n;i++) { scanf("%d%d%d", &k, &t, &j); cmp[t].pb(ii(k, j)); } memset(_dp, 0, sizeof(int)*(m+1)); for(int i=1;i<=m;i++) { sort(all(cmp[i])); for(int j=i;j<=m&&sz(cmp[i]);j+=i) { t=cmp[i].back().FF; if(!(--cmp[i].back().SS)) cmp[i].pop_back(); for(int k=m;k>=i;k--) _dp[k]=max(_dp[k], _dp[k-i]+t); } ans=max(ans, _dp[i]); } printf("%d", ans); return 0; } /* stuff you should look for - int overflow, array bounds - special cases (n=1?) - do smth instead of do nothing and stay organized - WRITE STUFF DOWN - DONT JUST STICK ON ONE APPROACH */

Compilation message (stderr)

knapsack.cpp: In function 'int main()':
knapsack.cpp:29:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |     scanf("%d%d", &m, &n); int ans=0;
      |     ~~~~~^~~~~~~~~~~~~~~~
knapsack.cpp:31:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |         scanf("%d%d%d", &k, &t, &j);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~
#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...