Submission #588394

# Submission time Handle Problem Language Result Execution time Memory
588394 2022-07-03T09:00:29 Z Blagojce Distributing Candies (IOI21_candies) C++17
0 / 100
135 ms 18760 KB
#include "candies.h"

#include <bits/stdc++.h>
#define fr(i, n, m) for(int i = (n); i < (m); i ++)
#define pb push_back
#define st first
#define nd second
#define all(x) begin(x), end(x)
#define pq priority_queue


using namespace std;

typedef long long ll;


int n;
int q;

std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l, std::vector<int> r, std::vector<int> v) {
    n = c.size();
	q = v.size();
	
	ll sum[q+1];
	sum[0] = 0;
	
	fr(i, 1, q+1){
		sum[i] = sum[i-1] + v[i-1];
	}
	
	
	
	
	
	
	
    ll suf[q+1];
    suf[q] = 0;
    for(int i = q-1; i >= 0; i --){
		suf[i] = suf[i+1] + v[i];
	}
	
	
	ll Min[q+2];
	ll Max[q+2];
	Min[q+1] = 1e18;
	Max[q+1] =-1e18;
	for(int i = q; i >= 0; i--){
		Min[i] = min(Min[i+1], sum[i]);
		Max[i] = max(Max[i+1], sum[i]);
	}
	
	
	vector<int> sol;
	fr(i, 0, n){
		int k1 = q;
		for(int b = (q+3)/2; b >= 1; b /= 2){
			while(k1-b >= 0 && Max[k1-b] - Min[k1-b] <= c[i]) k1 -= b;
		}
		
		ll h = sum[q];
		if(k1 == 0){
			sol.pb(h);
			continue;
		}
		
		
		if(sum[k1] > sum[k1-1]){
			sol.pb(h-Max[k1]+c[i]);
		}
		else{
			sol.pb(h-Min[k1]);
		}
		
	}
	
	
	
	
	
    
    
    
    return sol;
 
}
/*

int main(){
	vector<int> ans = distribute_candies({10, 15, 13}, {0, 0}, {2, 2}, {20, -11});
	for(auto u : ans) cout<< u<<' ';
	cout<<endl;
	
}
*/
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 300 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 135 ms 18760 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 296 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 62 ms 13904 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 300 KB Output isn't correct
3 Halted 0 ms 0 KB -