제출 #399576

#제출 시각아이디문제언어결과실행 시간메모리
399576Azimjon수열 (APIO14_sequence)C++17
0 / 100
108 ms8628 KiB
// Muallif: Azimjon Mehmonali o'g'li #include <bits/stdc++.h> using namespace std; #define int long long const long double PI = 3.1415926535897; const int mod = 1000000007LL; const int INF = 1e18; const int N = 111111; signed main() { ios::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector<pair<int, int>> a(n); for (int i = 0; i < n; i++) { cin >> a[i].first; a[i].second = i; } vector<vector<pair<int, int>>> g; g.push_back(a); int jv = 0; vector<int> el; while (k--) { int ka, ki; ka = -INF; ki = -1; for (auto v : g) { int yi = 0; for (auto [x, y] : v) yi += x; int hy = 0; for (int i = 0; i < (int)v.size(); i++) { hy += v[i].first; if (hy * (yi - hy) > ka) { ka = hy * (yi - hy); ki = v[i].second; } } } jv += ka; el.push_back(ki); int oc; vector<pair<int, int>> qq, ww; for (int j = 0; j < (int)g.size(); j++) { auto v = g[j]; int ii = -1; for (int i = 0; i < (int)v.size(); i++) { if (ki == v[i].second) { ii = i; } } if (ii != -1) { vector<pair<int, int>> tr; for (int i = 0; i <= ii; i++) { qq.push_back(v[i]); } g.push_back(tr); for (int i = ii + 1; i < (int)v.size(); i++) { ww.push_back(v[i]); } oc = j; break; } } g.push_back(qq); g.push_back(ww); g.erase(g.begin() + oc); } cout << jv << endl; for (int i : el) { cout << i + 1 << " "; } return 0; }
#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...