답안 #1025730

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1025730 2024-07-17T09:21:55 Z HappyCapybara 사탕 분배 (IOI21_candies) C++17
0 / 100
134 ms 15336 KB
#include "candies.h"
#include <bits/stdc++.h>
using namespace std;

int n;
vector<int> st;

void update(int pos, int val, int node=1, int tl=0, int tr=n-1){
    if (tl == tr){
        st[node] += val;
        return;
    }
    int tm = (tl+tr)/2;
    if (pos <= tm) update(pos, val, node*2, tl, tm);
    else update(pos, val, node*2+1, tm+1, tr);
    st[node] = st[node*2]+st[node*2+1];
}

int query(int l, int r, int node=1, int tl=0, int tr=n-1){
    if (l <= tl && tr <= r) return st[node];
    int tm = (tl+tr)/2;
    int res = 0;
    if (l <= tm) res += query(l, r, node*2, tl, tm);
    if (tm+1 <= r) res += query(l, r, node*2+1, tm+1, tr);
    return res;
}
 
vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v){
    n = c.size();
    int q = l.size();
    st.resize(4*n, 0);
    for (int i=0; i<q; i++){
        update(l[i], v[i]);
        if (r[i] < n-1) update(r[i]+1, -v[i]);
    }
    vector<int> s(n);
    for (int i=0; i<n; i++) s[i] = min(c[i], query(0, i));
    return s;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 134 ms 15336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -