Submission #436236

#TimeUsernameProblemLanguageResultExecution timeMemory
436236Apiram사탕 분배 (IOI21_candies)C++17
8 / 100
141 ms10476 KiB
#include "candies.h"
#include<bits/stdc++.h>
using namespace std;
std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l,
             
    				 
    				                       std::vector<int> r, std::vector<int> v) {

    int n = c.size();
    vector<int64_t>ans(n,0);
    vector<int64_t>pref(n+1,0);
    for (int i =0;i<l.size();++i){
    	if (v[i]>=0){
    	pref[l[i]]+=v[i];
    	pref[r[i]+1]-=v[i];
    	}
    	else {
    		for(int j = 1;j<n;++j){
    			pref[j]+=pref[j-1];
    			ans[j-1]=min(pref[j-1]+ans[j-1],(int64_t)c[j-1]);
    			if (l[i]<=j-1&&r[i]>=j-1){
    				ans[j-1]=max((int64_t)min((int64_t)pref[j-1]+ans[j-1],(int64_t)c[j-1])+v[i],(int64_t)0);
    			}
    			pref[j-1]=0;
    		}
    		
    		ans[n-1]=min(pref[n-1]+ans[n-1],(int64_t)c[n-1]);
    		if (l[i]<=n-1&&r[i]>=n-1){
    				ans[n-1]=max((int64_t)min((int64_t)pref[n-1]+ans[n-1],(int64_t)c[n-1])+v[i],(int64_t)0);
    			}
    			pref[n-1]=0;
    	}
    }
    ans[0]=min((int64_t)pref[0]+ans[0],(int64_t)c[0]);
    for (int i =1;i<n;++i){

    	pref[i]+=pref[i-1];
    	ans[i]=max((int64_t)0,(int64_t)min((int64_t)(pref[i]+ans[i]),(int64_t)c[i]));
    }
    vector<int>val(n,0);
    for (int i =0;i<n;++i){
    	val[i]=ans[i];
    }
    return val;
}

Compilation message (stderr)

candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:12:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |     for (int i =0;i<l.size();++i){
      |                   ~^~~~~~~~~
#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...