제출 #1216561

#제출 시각아이디문제언어결과실행 시간메모리
1216561dragon28102008Knapsack (NOI18_knapsack)C++17
49 / 100
345 ms327680 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
#define IN "main.inp"
#define OUT "main.out"
#define AC ios_base::sync_with_stdio(false);cin.tie(nullptr); cout.tie(nullptr);

const ll mod = 998244353;

ll s , n;
vector<ll> v , w , k;

ll sub1()
{
    ll res = min(k[0] ,(s/w[0] ) ) * v[0];
    return res;
}

ll sub23()
{
    vector<pair<ll,ll>> a;
    for(ll i = 0 ; i<n ; i++)
    {
        for(ll j = 0 ; j<k[i] ; j++)
        {
            a.push_back({v[i] , w[i]});
        }
    }
    vector<ll> dp(s+1 , 0);
    for(pair<ll,ll> p: a)
    {
        for(ll i = s ; i>=p.second ; i--)
        {

            dp[i] = max(dp[i] , dp[i-p.second] + p.first);
        }
    }
    return dp[s];
}

int main()
{
    if (fopen(IN, "r"))
    {
        freopen(IN, "r", stdin);
        freopen(OUT, "w", stdout);
    }
    AC
    cin>>s>>n;
    v.resize(n);
    w.resize(n);
    k.resize(n);
    for(ll i = 0 ; i<n ; i++)
    {
        cin>>v[i]>>w[i]>>k[i];
    }
    if(n == 1) cout<<sub1();
    else cout<<sub23();


    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

knapsack.cpp: In function 'int main()':
knapsack.cpp:46:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   46 |         freopen(IN, "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~
knapsack.cpp:47:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |         freopen(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...