Submission #495598

#TimeUsernameProblemLanguageResultExecution timeMemory
495598HalfDistributing Candies (IOI21_candies)C++17
11 / 100
105 ms12956 KiB
#include "candies.h" #include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef unsigned long long int ull; typedef long double ld; #define REP(i,a,b) for(ll i=(ll) a; i<(ll) b; i++) #define pb push_back #define mp make_pair #define pl pair<ll,ll> #define ff first #define ss second #define whole(x) x.begin(),x.end() #define DEBUG(i) cout<<"DEBUG "<<i<<endl #define INF 500000000LL #define EPS 0.00000001 #define pi 3.14159 ll mod=1000000007LL; std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l, std::vector<int> r, std::vector<int> v) { int n = c.size(); std::vector<int> s(n); int q = l.size(); if(n*q<=100000000){ for(int i = 0; i < n; i++){ ll nc = 0; for(int j = 0; j < q; j++){ if(l[j] <= i && i <= r[j]){ nc = max(0LL, min((ll)c[i], nc + (ll)v[j])); } } s[i] = nc; } return s; } bool t = true; for(int i = 0; i < q; i++){ t = t && (v[i] > 0); } if(t){ ll stp[n+1]; memset(stp, 0, sizeof stp); for(int i = 0; i < q; i++){ stp[l[i]] += v[i]; stp[r[i]+1] -= v[i]; } ll sm = 0; for(int i = 0; i < n; i++){ sm += stp[i]; s[i] = min((ll)c[i], sm); } return s; } }

Compilation message (stderr)

candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:56:1: warning: control reaches end of non-void function [-Wreturn-type]
   56 | }
      | ^
#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...