Submission #522697

#TimeUsernameProblemLanguageResultExecution timeMemory
522697InternetPerson10Distributing Candies (IOI21_candies)C++17
8 / 100
111 ms15172 KiB
#include "candies.h" #include <vector> using namespace std; typedef long long ll; vector<int> distribute_candies(vector<int> cInt, vector<int> lInt, vector<int> rInt, vector<int> vInt) { int n = cInt.size(); vector<ll> s(n+1), c(n), l(n), r(n), v(n); for(int i = 0; i < n; i++) { l[i] = lInt[i]; r[i] = rInt[i]; c[i] = cInt[i]; v[i] = vInt[i]; } bool subtask2 = true, subtask3 = true, subtask4 = true; for(int i = 0; i < n; i++) { if(v[i] < 0) subtask2 = false; if(i > 0 && c[i] != c[i-1]) subtask3 = false; if(r[i] - l[i] != n-1) subtask4 = false; } int q = v.size(); if(n <= 2000 && q <= 2000) { // Subtask 1 for(int i = 0; i < q; i++) { for(int j = l[i]; j <= r[i]; j++) { s[j] += v[i]; s[j] = max(s[j], 0LL); s[j] = min(s[j], c[j]); } } } else if(subtask2) { for(int i = 0; i < q; i++) { s[l[i]] += v[i]; s[r[i]+1] -= v[i]; } for(int i = 1; i < n; i++) { s[i] += s[i-1]; } for(int i = 0; i < n; i++) { s[i] = min(s[i], c[i]); } } else if(subtask3) { } else if(subtask4) { } else { } vector<int> sInt(n); for(int i = 0; i < n; i++) sInt[i] = s[i]; return sInt; }
#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...