제출 #796121

#제출 시각아이디문제언어결과실행 시간메모리
796121t6twotwoDistributing Candies (IOI21_candies)C++17
11 / 100
94 ms8872 KiB
#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<int> distribute_candies(vector<int> C, vector<int> L, vector<int> R, vector<int> V) {
    for (int &x : R) {
        x++;
    }
    int N = C.size(), Q = L.size();
    if (N <= 2000 && Q <= 2000) {
        vector<int> A(N);
        for (int i = 0; i < Q; i++) {
            for (int j = L[i]; j < R[i]; j++) {
                A[j] += V[i];
                A[j] = max(A[j], 0);
                A[j] = min(A[j], C[j]);
            }
        }
        return A;
    }
    vector<ll> s(N + 1);
    for (int i = 0; i < Q; i++) {
        s[L[i]] += V[i];
        s[R[i]] -= V[i];
    }
    vector<int> A(N);
    for (int i = 0; i < N; i++) {
        A[i] = min((ll)C[i], s[i]);
        s[i + 1] += s[i];
    }
    return A;
}
#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...