Submission #1062471

#TimeUsernameProblemLanguageResultExecution timeMemory
1062471j_vdd16Distributing Candies (IOI21_candies)C++17
0 / 100
66 ms8184 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 int 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();

    vi 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);

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

        s[i] = min(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...