제출 #1243791

#제출 시각아이디문제언어결과실행 시간메모리
1243791somefolk사탕 분배 (IOI21_candies)C++20
3 / 100
1146 ms7236 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(); vector<int> sol(n, 0); if(n <= 2000){ 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 = 0; i < n; i++){ if(i) sol[i] += sol[i-1]; sol[i] = min(sol[i], a[i]); sol[i] = max(sol[i], 0); } } // for(auto &i : sol){ // cout << i << " "; // } return sol; }
#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...