답안 #1089808

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1089808 2024-09-17T07:37:34 Z Pekiban Candies (JOI18_candies) C++17
0 / 100
93 ms 556 KB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define pb push_back

vector<ll> mxconv(vector<ll> &a, vector<ll> &b) {
    int n = a.size(), m = b.size();
    vector<ll> c(n+m);
    c[0] = 0;
    int i = 1, j = 1;
    while (i < n || j < m) {
        if (i == n) ++j;
        else if (j == m)    ++i;
        else {
            if (a[i] - a[i-1] > b[j] - b[j-1])  ++i;
            else    ++j;
        }
        c[i+j-2] = a[i-1] + b[j-1];
    }
    return c;
}
vector<ll> dq(vector<ll> &a) {
    int n = a.size();
    if (n == 0) return {0};
    if (n == 1) return {0, a[0]};
    vector<ll> L, R;
    for (int i = 0; i < n/2; ++i)   L.pb(a[i]);
    for (int i = n/2; i < n; ++i)   R.pb(a[i]);
    reverse(R.begin(), R.end());
    auto A = dq(L);
    L.pop_back();
    auto B = dq(L);
    auto C = dq(R);
    R.pop_back();
    auto D = dq(R);
    auto E = mxconv(A, D);
    auto F = mxconv(C, B);
    for (int i = 0; i < E.size(); ++i)  E[i] = max(E[i], F[i]);
    return E;
}
// proof by ac lol
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
	vector<ll> a(n);
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
    }
	auto ans = dq(a);
	for (int i = 1; i <= (n+1)/2; ++i) {
		cout << ans[i] << '\n';
	}
}

Compilation message

candies.cpp: In function 'std::vector<long long int> dq(std::vector<long long int>&)':
candies.cpp:39:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |     for (int i = 0; i < E.size(); ++i)  E[i] = max(E[i], F[i]);
      |                     ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 93 ms 556 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 93 ms 556 KB Output isn't correct
2 Halted 0 ms 0 KB -