Submission #1156559

#TimeUsernameProblemLanguageResultExecution timeMemory
1156559brianhdzmdoBoxes with souvenirs (IOI15_boxes)C++20
0 / 100
252 ms589824 KiB
#include <algorithm> #include <cmath> #include <iostream> #include <deque> #include <math.h> #include <numeric> #include <set> #include <stack> #include <map> #include <string> #include <utility> #include <vector> #include <climits> #define all(a) (a).begin(), (a).end() #define allr(a) (a).rbegin(), (a).rend() #define ll long long #define ld long double #define fr(i, a, b) for (ll i = a; i < b; i++) #define fr1(i, a, b) for (ll i = a - 1; i >= b; i--) #define fi first #define se second #define mp(j, k) make_pair(j, k) #define pb(x) push_back(x) #define in(x) insert(x) #define vec vector<ll> #define vecv vector<vector<ll> > #define veb vector<bool> #define vecp vector<pair<ll,ll>> #define yes cout << "YES\n"; #define no cout << "NO\n"; #define ac 1e-7 #define fauto(a) \ for (auto i : a) \ cout << i << " "; #define fautop(a) \ for (auto i : a) \ cout << i.fi << " " << i.se << endl; const ll INF = 1e9; using namespace std; int delivery(int N, int K, int L, int *positions) { vector<int> freq(L, 0); for(int i = 0; i < N; ++i) { int pos = positions[i]; if(pos != 0) freq[pos]++; } int cost = 0; int curK = K; int curP = 0; for(int i = 0; i < L; ++i) { if(!freq[i]) continue; while(freq[i] > 0) { if(!curP) { ll dist = min(i, L - i); cost += dist; curP = i; } else if(curP < i) { cost += i - curP; curP = i; } int deliver = min(curK, freq[i]); freq[i] -= deliver; curK -= deliver; if(!curK) { cost += min(curP, L - curP); curP = 0; curK = K; } } } if(curP != 0) cost += min(curP, L - curP); return cost; } /*int32_t main() { int n, k, l; cin >> n >> k >> l; int positions[n]; for(int i = 0; i < n; ++i) cin >> positions[i]; cout << delivery(n, k, l, positions) << "\n"; }*/
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...