제출 #1331300

#제출 시각아이디문제언어결과실행 시간메모리
1331300ledinhmanh0401Knapsack (NOI18_knapsack)C++20
73 / 100
1095 ms472 KiB
#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define endl '\n'
using namespace std;

const ll MOD = 1e9+7;

void setup(){
    if(fopen("input.INP", "r")){
        freopen("input.INP", "r", stdin);
        freopen("output.OUT", "w", stdout);
    }
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
}
ll dp[2005],old[2005];

int main(){
    setup();
    int s,n;
    cin>>s>>n;
    for(int i=0;i<n;i++){
        ll v,w,k;
        cin>>v>>w>>k;
        if(w>s) continue;
        if(k>s/w) k=s/w;
        for(int j=0;j<=s;j++)
            old[j]=dp[j];
        for(int r=0;r<w;r++){
            deque<int> q;
            for(int j=r,t=0;j<=s;j+=w,t++){
                while(!q.empty() && q.front()<t-k)
                    q.pop_front();
                while(!q.empty() && old[r+q.back()*w]-q.back()*v<= old[j]-t*v)
                    q.pop_back();
                q.push_back(t);
                dp[j]=old[r+q.front()*w]+(t-q.front())*v;
            }
        }
    }
    cout<<dp[s];
    return 0;
}

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

knapsack.cpp: In function 'void setup()':
knapsack.cpp:11:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |         freopen("input.INP", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
knapsack.cpp:12:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |         freopen("output.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...