제출 #1062472

#제출 시각아이디문제언어결과실행 시간메모리
1062472j_vdd16사탕 분배 (IOI21_candies)C++17
8 / 100
70 ms13104 KiB
#include "candies.h"

#include <algorithm>
#include <bitset>
#include <cstdint>
#include <cstring>
#include <iostream>
#include <limits.h>
#include <math.h>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>

#define ll long long
#define loop(X, N) for(int X = 0; X < (N); X++)
#define all(V) V.begin(), V.end()
#define rall(V) V.rbegin(), V.rend()

using namespace std;

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<vector<ii>> vvii;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;

vi distribute_candies(vi c, vi ls, vi rs, vi vs) {
    int n = c.size();
    int q = ls.size();

    vector<ll> ranges(n + 1);
    loop(i, q) {
        int l = ls[i];
        int r = rs[i];
        int v = vs[i];

        ranges[l] += v;
        ranges[r + 1] -= v;
    }
    
    vi s(n);

    ll max = 0;
    loop(i, n) {
        max += ranges[i];

        s[i] = min((ll)c[i], max);
    }

    return s;
}
#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...