#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];
vector<pii> items[N],newitems;
void solve() {
cin>>s>>n;
forr(i,1,n) {
int v,w,a;
cin>>v>>w>>a;
items[w].pb({v,a});
}
forr(i,1,s) {
if (items[i].size()==0) continue;
sort(all(items[i]),greater<pii>());
int d= s/i;
for(pii x: items[i]) {
if (d==0) break;
forr(j,1,x.se) {
if (d==0) break;
newitems.pb({i,x.fi});
d--;
}
}
}
for(pii x: newitems) {
ford(i,s,x.fi) {
dp[i]=max(dp[i],dp[i-x.fi]+x.se);
}
}
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;
}
컴파일 시 표준 에러 (stderr) 메시지
knapsack.cpp: In function 'int main()':
knapsack.cpp:89:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
89 | freopen(file".inp","r",stdin); freopen(file".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
knapsack.cpp:89:43: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
89 | freopen(file".inp","r",stdin); freopen(file".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |