Submission #826864

#TimeUsernameProblemLanguageResultExecution timeMemory
826864Sohsoh84Distributing Candies (IOI21_candies)C++17
38 / 100
5063 ms8556 KiB
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx")

#include "candies.h"
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 2e5;
const int T = 250;

int A[MAXN];

vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) {
    	int q = l.size(), n = c.size();
	for (int s = 0; s < MAXN; s += T) {
		int fl = s, fr = s + T - 1;

		for (int i = 0; i < q; i++) {
			int tl = (fl > l[i] ? fl : l[i]);
			int tr = (fr < r[i] ? fr : r[i]);
			if (v[i] >= 0) {
				for (int j = tl; j <= tr; j++) {
					A[j] = (A[j] + v[i] >= c[j] ? c[j] : A[j] + v[i]);	
				}
			} else {
				for (int j = tl; j <= tr; j++) {
					A[j] = (A[j] + v[i] >= 0 ? A[j] + v[i] : 0);
				}
			}
		}
	}

	vector<int> ans;
	for (int i = 0; i < n; i++) ans.push_back(A[i]);
	return ans;
}
#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...