Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include<bits/stdc++.h>
- #include<iostream>
- #include<vector>
- #define long long long
- #define nln '\n'
- using namespace std;
- void swap(pair<long, long> &a, pair<long, long> &b)
- {
- pair<long, long> tem = a;
- a = b;
- b = tem;
- }
- void swapb(long &a, long &b)
- {
- long tem = a;
- a = b;
- b = tem;
- }
- int main()
- {
- //freopen("laplich.inp", "r", stdin);
- long n;
- cin >> n;
- vector<pair<long, long>> a(n+1, {0, 0});
- for (long i = 1; i <= n; ++i)
- {
- long x;
- cin >> x;
- a[i] = {x, i};
- }
- vector<long> b(n+1, 0);
- for (long i = 1; i <= n; ++i)
- cin >> b[i];
- for (long i = 1; i <= n-1; ++i)
- for (long j = i+1; j <= n; ++j)
- if ((a[i].first*b[i] + (b[i]+b[j])*a[j].first) > (a[j].first*b[j] + (b[i]+b[j])*a[i].first))
- {
- swap(a[i], a[j]);
- swapb(b[i], b[j]);
- }
- long ans = 0, day = 0;
- for (long i = 1; i <= n; ++i)
- {
- day += b[i];
- ans += a[i].first * day;
- }
- cout << ans << nln;
- for (long i = 1; i <= n; ++i)
- cout << a[i].second << ' ';
- cout << nln;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment