Submission #1239558

#TimeUsernameProblemLanguageResultExecution timeMemory
1239558poatDistributing Candies (IOI21_candies)C++17
0 / 100
5093 ms8004 KiB
#include "candies.h"
// #include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;

vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) {
    
    bool fl = 0;
    for(auto i : v)
    {
        if(i < 0)
            fl = 1;
    }

    
    int n = c.size(), Q = l.size();
    vector<int> s(n);

    if(fl)
    {
        for(int it = 0; it < Q; it++)
        {
            for(int i = l[it]; i <= r[it]; i++)
            {
                if(v[it] > 0)
                    s[i] = min(s[i] + v[it], c[i]);
                else
                    s[i] = max(s[i] + v[it], 0);
            }
        }
    }

    else
    {
        int pref[n + 5] = {};
        for(int it = 0; it < Q; it++)
        {
            pref[l[it]] += v[it];
            pref[r[it] + 1] -= v[it];
        }
        for(int i = 0; i < n; i++)
        {
            pref[i] += (i == 0 ? 0 : pref[i - 1]);
            s[i] += pref[i];
            
            // s[i] = max(0ll, s[i]);
            // s[i] = min(c[i] * 1ll, s[i]);
        }
    }

    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...