Submission #1009730

#TimeUsernameProblemLanguageResultExecution timeMemory
1009730ProtonDecay314선물상자 (IOI15_boxes)C++17
10 / 100
1 ms348 KiB
/* ??? */ #include<bits/stdc++.h> // #define DEBUG using namespace std; typedef long long ll; typedef vector<ll> vll; typedef vector<vll> vvll; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> pi; typedef pair<ll, ll> pll; typedef vector<pi> vpi; typedef vector<pll> vpll; #define first fi; #define second se; ll delivery(int intn, int intk, int intl, int pos_int[]) { ll n = intn, k = intk, l = intl; vll pos(n, 0ll); for(ll i = 0; i < n; i++) { pos[i] = pos_int[i]; } ll ans = 0ll; if(k == 1) { for(ll i = 0; i < n; i++) { ans += min(pos[i], l - pos[i]) << 1ll; } } else if(k == n) { sort(pos.begin(), pos.end()); ll min_not_zero = -1ll; for(ll i = 0; i < n; i++) { if(pos[i] != 0ll) { min_not_zero = pos[i]; break; } } bool gthalfexists = pos[n - 1ll] > (l >> 1ll); bool lthalfexists = (min_not_zero != -1ll) && (l - min_not_zero > (l >> 1ll)); if(gthalfexists && lthalfexists) { ans = l; } else if(gthalfexists) { ans = (l - min_not_zero) << 1ll; } else { ans = pos[n - 1] << 1ll; } } return ans; } #ifdef DEBUG int main() { cin.tie(nullptr); cout.tie(nullptr); ios_base::sync_with_stdio(false); ll n, k, l; cin >> n >> k >> l; vll positions(n, 0); for(ll& pos : positions) { cin >> pos; } cout << delivery(n, k, l, &positions[0]) << endl; } #endif
#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...