Iamtui1010

laplich

Dec 10th, 2021
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. //#include<bits/stdc++.h>
  2. #include<iostream>
  3. #include<vector>
  4.  
  5. #define long long long
  6. #define nln '\n'
  7.  
  8. using namespace std;
  9.  
  10. void swap(pair<long, long> &a, pair<long, long> &b)
  11. {
  12.     pair<long, long> tem = a;
  13.     a = b;
  14.     b = tem;
  15. }
  16.  
  17. void swapb(long &a, long &b)
  18. {
  19.     long tem = a;
  20.     a = b;
  21.     b = tem;
  22. }
  23.  
  24. int main()
  25. {
  26.     //freopen("laplich.inp", "r", stdin);
  27.     long n;
  28.     cin >> n;
  29.     vector<pair<long, long>> a(n+1, {0, 0});
  30.     for (long i = 1; i <= n; ++i)
  31.     {
  32.         long x;
  33.         cin >> x;
  34.         a[i] = {x, i};
  35.     }
  36.     vector<long> b(n+1, 0);
  37.     for (long i = 1; i <= n; ++i)
  38.         cin >> b[i];
  39.  
  40.     for (long i = 1; i <= n-1; ++i)
  41.         for (long j = i+1; j <= n; ++j)
  42.             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))
  43.             {
  44.                 swap(a[i], a[j]);
  45.                 swapb(b[i], b[j]);
  46.             }
  47.  
  48.     long ans = 0, day = 0; 
  49.     for (long i = 1; i <= n; ++i)
  50.     {
  51.         day += b[i];
  52.         ans += a[i].first * day;
  53.     }
  54.     cout << ans << nln;
  55.     for (long i = 1; i <= n; ++i)
  56.         cout << a[i].second << ' ';
  57.     cout << nln;
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment