제출 #1243796

#제출 시각아이디문제언어결과실행 시간메모리
1243796somefolkDistributing Candies (IOI21_candies)C++20
0 / 100
74 ms10052 KiB
#include <iostream> #include <cmath> #include <algorithm> #include <string> #include <vector> #include <map> #include <unordered_map> #include <queue> #include <set> #include <unordered_set> #include <complex> #include <list> #include <cassert> #include <chrono> #include <random> #include <stack> #include <iomanip> #include <fstream> using namespace std; #define endl "\n" // #define int long long const int INF = 1e9+7; const int MOD = 1e9+7; vector<int> distribute_candies(vector<int> a, vector<int> l, vector<int> r, vector<int> v){ int n = (int)a.size(), q = (int)l.size(); int option = 0; for(auto &i : v) if(i < 0) option = 1; vector<long long> sol(n, 0); if(option){ for(int i = 0; i < q; i++){ for(int j = l[i]; j <= r[i]; j++){ if(sol[j] >= -v[i] && sol[j] <= a[j]-v[i]){ sol[j] += v[i]; } else { sol[j] = (v[i]>0 ? a[j] : 0); } } } } else { for(int i = 0; i < q; i++){ sol[l[i]] += v[i]; if(r[i] < n-1) sol[r[i]+1] -= v[i]; } for(int i = 1; i < n; i++){ sol[i] += sol[i-1]; } } vector<int> sol2(n, 0); for(int i = 0; i < n; i++){ if(sol[i] > a[i]) sol2[i] = a[i]; else sol2[i] = sol[i]; } for(auto &i : sol2){ cout << i << " "; } return sol2; }
#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...