Advertisement
tuki2501

TWO.cpp

Nov 12th, 2021
1,219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5.   int n; cin >> n;
  6.   vector<array<int,3>> a(n);
  7.   for (auto &i : a) {
  8.     cin >> i[0];
  9.   }
  10.   for (auto &i : a) {
  11.     cin >> i[1];
  12.   }
  13.   for (int i = 0; i < n; i++) {
  14.     a[i][2] = i + 1;
  15.   }
  16.   sort(a.begin(), a.end(), [](array<int,3> a, array<int,3> b) {
  17.     int sa = max(a[0] + b[0], a[0] + a[1]) + b[1];
  18.     int sb = max(b[0] + a[0], b[0] + b[1]) + a[1];
  19.     return sa < sb;
  20.   });
  21.   vector<int> s(n), t(n);
  22.   s[0] = a[0][0];
  23.   t[0] = a[0][0] + a[0][1];
  24.   for (int i = 1; i < n; i++) {
  25.     s[i] = s[i - 1] + a[i][0];
  26.     t[i] = max(s[i], t[i - 1]) + a[i][1];
  27.   }
  28.   cout << t[n - 1] << '\n';
  29.   for (auto &i : a) cout << i[2] << ' ';
  30.   cout << '\n';
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement