답안 #1101964

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1101964 2024-10-17T08:50:02 Z AnhPham 나일강 (IOI24_nile) C++17
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>

// #ifdef OP_DEBUG
//     #include <algo/debug.h>
// #else
//     #define debug(...) 26
// #endif

using namespace std;
// template <class Fun> class y_combinator_result {
//     Fun fun_;
// public:
//     template <class T> explicit y_combinator_result(T &&fun): fun_(std::forward <T> (fun)) {}
//     template <class ...Args> decltype(auto) operator()(Args &&...args) { return fun_(std::ref(*this), std::forward <Args> (args)...); }
// };
// template <class Fun> decltype(auto) y_combinator(Fun &&fun) { return y_combinator_result <std::decay_t <Fun>> (std::forward <Fun> (fun)); }

#define int 	long long
#define eb      emplace_back
#define sz(v)   (int)(v).size()
#define all(v)  (v).begin(), (v).end()
#define TcT     template <class T

// const   int     MOD = (int)1e9 + 7, INF = (int)4e18 + 18;

// TcT>            bool minimize(T &lhs, const T &rhs) { return rhs < lhs ? lhs = rhs, 1 : 0; }
// TcT>            bool maximize(T &lhs, const T &rhs) { return rhs > lhs ? lhs = rhs, 1 : 0; }

// void solve();

// int32_t main() {
//     cin.tie(nullptr), cout.tie(nullptr) -> sync_with_stdio(false);
//     int testcases = 1;

// #define multitest 0
//     if (multitest) { cin >> testcases; } for (; testcases--;) { solve(); }
// }

// /* [Pham Hung Anh - 12I - Tran Hung Dao High School for Gifted Student] */

const int mxN = 1e5 + 5;

int dp[mxN];
vector <tuple <int, int, int>> queries;

vector <int> calculate_costs(vector <int> W, vector <int> A, vector <int> B, vector <int> E) {
    int N = sz(W), Q = sz(E);
    for (int i = 0; i < N; ++i)
        queries.eb(W[i], A[i], B[i]);
    
    sort(all(queries));

    for (int i = 0; i < N; ++i) {
        auto [w, a, b] = queries[i];
        W[i] = w, A[i] = a, B[i] = b;
    }

    vector <int> ans;
    for (int q = 0; q < Q; ++q) {
        memset(dp, 0, sizeof (dp));
        dp[0] = A[0];
        for (int i = 1; i < N; ++i) {
            dp[i] = dp[i - 1] + A[i];
            int sum = 0;
            for (int j = i - 1; j >= 0; --j) {
                if (W[i] - W[j] <= E[q])
                    dp[i] = min(dp[i], (j == 0 ? 0 : dp[j - 1]) + B[i] + B[j] + sum);

                sum += A[j];
            }
        }

        ans.emplace_back(dp[N - 1]);
    }

}

Compilation message

nile.cpp: In function 'std::vector<long long int> calculate_costs(std::vector<long long int>, std::vector<long long int>, std::vector<long long int>, std::vector<long long int>)':
nile.cpp:76:1: warning: no return statement in function returning non-void [-Wreturn-type]
   76 | }
      | ^
/usr/bin/ld: /tmp/ccXA8rHb.o: in function `main':
grader.cpp:(.text.startup+0x300): 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