Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //usr/bin/env -S bash -c 'g++ -std=c++11 -o "${0%.*}" "$0" && ./"${0%.*}" "$@" && rm ./"${0%.*}"' "$0" "$@"; exit
- #include <iostream>
- #include <set>
- #include <vector>
- #include <deque>
- #include <map>
- #include <cmath>
- #include <random>
- #define se second
- #define fi first
- #define mp make_pair
- #define pb push_back
- typedef long long ll;
- typedef long double ld;
- using namespace std;
- int n;
- vector<int> a;
- pair<int, int> find() {
- int t = 300;
- int penalty = 0;
- int lst_p = 0;
- int cnt = 0;
- for (int i = 0; i < n; i++) {
- if (a[i] <= t) {
- t -= a[i];
- cnt += 1;
- penalty += lst_p + a[i];
- lst_p = lst_p + a[i];
- } else {
- break;
- }
- }
- return {-cnt, penalty};
- }
- int main() {
- cin >> n;
- a.resize(n);
- for (auto& e : a) cin >> e;
- pair<int, int> st1 = find();
- reverse(a.begin(), a.end());
- pair<int, int> st2 = find();
- sort(a.begin(), a.end());
- pair<int, int> st3 = find();
- vector<pair<pair<int, int>, int>> all = {{st1, 5}, {st2, 3}, {st3, 1}};
- sort(all.begin(), all.end());
- cout << all[0].second;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment