Submission #659018

# Submission time Handle Problem Language Result Execution time Memory
659018 2022-11-15T19:41:57 Z smirichto Knapsack (NOI18_knapsack) C++17
12 / 100
1 ms 340 KB
/*
    STAY ORGANIZED
    CHANGE YOUR APPROACH
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll ;
typedef long double ld ;
#define FAST ios::sync_with_stdio(0), cin.tie(0),cout.tie(0)
#define pb push_back
#define pi pair<ll , ll>
#define pll pair<ll,ll>
#define yes cout<<"YES"<<endl;
#define no cout<<"NO"<<endl;
#define fr(i,a,b) for(ll i = a;i < (ll)b;i++)
#define rfr(i,a,b) for(ll i = a;i > (ll)b;i--)
#define F first
#define S second
#define all(x) (x).begin(), (x).end()
#define alll(x) ((x).begin()+1), (x).end()
#define MOD 998244353
#define endl '\n'
const ll mod = 1e9+7 ;
void io(string s = "" ,bool flag = 0){
    ios::sync_with_stdio(false) ;cin.tie(NULL) ;
    if(s.size()) {
            freopen((s + ".in").c_str(),"r",stdin) ;
            if(flag) freopen((s + ".out").c_str(),"w",stdout) ;
    }
}
void dbg(vector<ll> tab){for(auto it : tab) cout<<it<<" ";cout<<endl;}
void dbgg(pi p){cout<<p.F<<" "<<p.S<<endl;}
void dbgpi(vector<pi> tab){for(auto it : tab) dbgg(it) ;}
template<class T> bool ckmax(T& a, const T& b){return a < b ? a = b, 1 : 0;}
template<class T> bool ckmin(T& a, const T& b){return a > b ? a = b, 1 : 0;}
template<class T> void add(T& a, const T& b){a = a + b ; if(a>mod) a-= mod ;}
void nop(){cout<<-1<<endl;return;}

const ll inf = 1e9 ;

const ll N = 1e5+5 ;
ll s , n ,  val[N] , weight[N] , k[N] ;
pi dp1[2005] , dp2[2005] ;
void solve()
{
    cin>>s>>n ;
    for(ll i = 1 ; i<=n ; i++){
        cin>>val[i]>>weight[i]>>k[i] ;
    }
    ll ans = 0 ;
    for(ll i = 1 ; i<=n ; i++){
        for(ll j = 1 ; j<s+1 ; j++){
            if(j<weight[i] || dp1[j-weight[i]].second>=k[i]) continue ;
            if(dp1[j-weight[i]].first+val[i]>dp1[j].first){
                dp1[j].first = dp1[j-weight[i]].first+val[i] ;
                dp1[j].second = dp1[j-weight[i]].second + 1 ;
            }
        }
        for(ll j = 1 ; j<s+1 ; j++){
            dp1[j].second = 0 ;
            ckmax(ans , dp1[j].first) ;
        }

    }
    cout<<ans<<endl;
}



int main()
{
    io() ;
    srand(time(0)) ;
    ll tt = 1 ;
//    cin>>tt ;
    for(ll i = 1 ; i<=tt ; i++){
        solve() ;
    }
}

Compilation message

knapsack.cpp: In function 'void io(std::string, bool)':
knapsack.cpp:27:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |             freopen((s + ".in").c_str(),"r",stdin) ;
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
knapsack.cpp:28:29: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |             if(flag) freopen((s + ".out").c_str(),"w",stdout) ;
      |                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 1 ms 340 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 1 ms 340 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Incorrect 1 ms 340 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Incorrect 1 ms 340 KB Output isn't correct
7 Halted 0 ms 0 KB -