Submission #1318901

#TimeUsernameProblemLanguageResultExecution timeMemory
1318901mrbetKnapsack (NOI18_knapsack)C++20
73 / 100
1094 ms1500 KiB
#include "bits/stdc++.h" using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<ll,ll> pll; #define forr(_a,_b,_c) for(int _a = (_b); _a <= int (_c); ++_a) #define ford(_a,_b,_c) for(int _a = (_b) + 1; _a --> int (_c);) #define forf(_a,_b,_c) for(int _a = (_b); _a < int (_c); ++_a) #define pb push_back #define fi first #define se second #define vi vector #define all(_v) _v.begin(), _v.end() #define mask(_x) (1ll << (_x)) #define bit(_x,_y) (((_x) >> (_y)) & 1) #define file "A" string yes[2] = {"NO\n","YES\n"}; const ld eps = ld(1e-7); const ll oo = ll(1e16) + 1; const ll mod = ll(1e9) + 7; template<class X, class Y> inline bool Min(X &x, const Y &y) { if(x > y) { x = y; return true; } return false; } template<class X, class Y> inline bool Max(X &x, const Y &y) { if(x < y) { x = y; return true; } return false; } const int N = 1e5+5; int s,n; ll dp[N]; pair<int,pii> a[N]; void solve() { cin>>s>>n; forr(i,1,n) cin>>a[i].fi>>a[i].se.fi>>a[i].se.se; forr(i,1,n) { int k= a[i].se.se; int v=1; while (k>=v) { if (1LL*a[i].se.fi*v>(ll) s) break; ford(j,s,a[i].se.fi*v) dp[j]=max(dp[j],dp[j-a[i].se.fi*v]+1LL*a[i].fi*v); k-=v; v*=2; } if (k && 1LL*a[i].se.fi*k<=(ll) s) ford(j,s,a[i].se.fi*k) dp[j]=max(dp[j],dp[j-a[i].se.fi*k]+1LL*a[i].fi*k); } cout<<dp[s]; } void precalc() { } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout << fixed << setprecision(7); if (fopen(file".inp","r")) { freopen(file".inp","r",stdin); freopen(file".out","w",stdout); } int tc = 1; //cin >> tc; precalc(); while(tc--) { solve(); } return 0; }

Compilation message (stderr)

knapsack.cpp: In function 'int main()':
knapsack.cpp:76:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   76 |     freopen(file".inp","r",stdin); freopen(file".out","w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
knapsack.cpp:76:43: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   76 |     freopen(file".inp","r",stdin); freopen(file".out","w",stdout);
      |                                    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...