Submission #1243878

#TimeUsernameProblemLanguageResultExecution timeMemory
1243878somefolkDistributing Candies (IOI21_candies)C++20
Compilation error
0 ms0 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; struct Query { int idx, val; }; 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 = 1, option2 = 1; for(int i = 0; i < q; i++){ if(v[i] < 0){ option = 0; } if(i && v[i] != v[i-1]){ option2 = 0; } } vector<long long> sol(n, 0); if(!option2){ vector<Query> qry; for(int i = 0; i < q; i++){ qry.push_back({l[i], v[i]}); qry.push_back({r[i], -v[i]}); } sort(qry.begin(), qry.end(), [&](auto left, auto right){ return left.idx < right.idx; }); int curr = 0, j = 0; for(int i = 0; i < n; i++){ while(i == qry[j].idx){ curr += v[i]; if(curr > a[i]) curr = a[i]; if(curr < 0) curr = 0; j++; } sol[i] = curr; } } else if(!option){ 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]; } } else { 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); } } } } 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; } int32_t main(){ int n, q; cin >> n >> q; vector<int> a(n), l(q), r(q), v(q); for(int i = 0; i < n; i++) cin >> a[i]; for(int i = 0; i < q; i++) cin >> l[i]; for(int i = 0; i < q; i++) cin >> r[i]; for(int i = 0; i < q; i++) cin >> v[i]; distribute_candies(a, l, r, v); return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccMKuZ1V.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccDMWQFv.o:candies.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status