제출 #1243605

#제출 시각아이디문제언어결과실행 시간메모리
1243605Arturgo사탕 분배 (IOI21_candies)C++20
0 / 100
5089 ms8768 KiB
#include "candies.h" #include <bits/stdc++.h> using namespace std; vector<int> distribute_candies(vector<int> bornes, vector<int> debs, vector<int> fins, vector<int> ajouts) { vector<int> final(bornes.size(), -1); for(int pos = 0;pos < (int)bornes.size();pos++) { vector<long long> cumul = {0}; for(int iOperation = 0;iOperation < (int)ajouts.size();iOperation++) { if(debs[iOperation] <= pos && pos <= fins[iOperation]) { cumul.push_back(cumul.back() + ajouts[iOperation]); } } auto itMax = max_element(cumul.begin(), cumul.end()); auto itMinAvant = min_element(cumul.begin(), itMax + 1); auto itMinApres = min_element(itMax, cumul.end()); long long valMax = *itMax - *itMinAvant; long long valMin = *itMinApres - *itMinAvant; long long total = cumul.back() - *itMinAvant; long long delta = max(0ll, valMax - bornes[pos]); if(valMin - delta >= 0) { final[pos] = cumul.back() - delta; } else { final[pos] = min<long long>(bornes[pos], total - valMin); } } return final; }
#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...