Submission #1181691

#TimeUsernameProblemLanguageResultExecution timeMemory
1181691sagnbaevv나일강 (IOI24_nile)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

static const long long INF = 1LL<<60;

int main(){
    ios::sync_with_stdio(false); 
    cin.tie(NULL);

    int N; cin >> N;
    vector<long long> W(N), A(N), B(N), save(N);
    for(int i=0; i<N; i++){
        cin >> W[i] >> A[i] >> B[i];
        save[i] = A[i] - B[i];
    }

    int Q; cin >> Q;
    vector<long long> E(Q);
    for(int i=0; i<Q; i++){
        cin >> E[i];
    }

    vector<int> idx(N); 
    iota(idx.begin(), idx.end(), 0);
    sort(idx.begin(), idx.end(), [&](int p, int q){
        return W[p] < W[q];
    });

    vector<long long> Ws(N), Sv(N);
    for(int i=0; i<N; i++){
        Ws[i] = W[idx[i]];
        Sv[i] = save[idx[i]];
    }

    long long sumA = 0;
    for(int i=0; i<N; i++){
        sumA += A[i];
    }

    for(int qi=0; qi<Q; qi++){
        long long D = E[qi];
        long long ans = 0;
        vector<long long> dp(N+1, 0LL); 
        long long bestVal = -INF;
        int leftPtr = 0;

        for(int k=1; k<=N; k++){
            while(Ws[k-1] - Ws[leftPtr] > D){
                leftPtr++;
            }

            bestVal = -INF;
            for(int i=leftPtr; i<k-1; i++){
                long long cand = dp[i] + Sv[i];
                if(cand > bestVal) bestVal = cand;
            }

            dp[k] = dp[k-1];
            if(bestVal != -INF){
                long long possible = bestVal + Sv[k-1];
                if(possible > dp[k]) dp[k] = possible;
            }
        }

        long long totalSaving = dp[N];
        long long cost = sumA - totalSaving;
        cout << cost << "\n";
    }
    return 0;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccwuCDNP.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccrTZhNy.o:nile.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccwuCDNP.o: in function `main':
grader.cpp:(.text.startup+0x30e): undefined reference to `calculate_costs(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status