pastebin

Paste Search Dynamic
Recent pastes
max element
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define PI 3.1415926535897932384626
  4. #define int int64_t
  5. #define str(n) to_string(n)
  6. #define endl "n"
  7. #define YES cout << "YES"
  8.                  << "n"
  9. #define NO cout << "NO"
  10.                 << "n"
  11. #define lower(c) (char)(c | ' ')
  12. #define upper(c) (char)(c & '_')
  13. #define ispowoftwo(n) (!(n & (n - 1)))
  14. #define mod 1000000007
  15. #define pb push_back
  16. #define ff first
  17. #define ss second
  18. #define set_bits __builtin_popcountll
  19. #define all(v) (v).begin(), (v).end()
  20. #define rall(v) (v).rbegin(), (v).rend()
  21. #define sortall(x) sort(all(x))
  22. typedef vector<int>
  23.     vi;
  24. typedef vector<string> vs;
  25.  
  26. #ifndef ONLINE_JUDGE
  27. #define debug(x)      
  28.     cerr << #x << " ";
  29.     _print(x);        
  30.     cerr << endl;
  31. #else
  32. #define debug(x)
  33. #endif
  34. void _print(int t)
  35. {
  36.     cerr << t;
  37. }
  38. void _print(string t) { cerr << t; }
  39. void _print(char t) { cerr << t; }
  40. void _print(double t) { cerr << t; }
  41. template <class T, class V>
  42. void _print(pair<T, V> p);
  43. template <class T>
  44. void _print(vector<T> v);
  45. template <class T>
  46. void _print(set<T> v);
  47. template <class T, class V>
  48. void _print(map<T, V> v);
  49. template <class T>
  50. void _print(multiset<T> v);
  51. template <class T, class V>
  52. void _print(pair<T, V> p)
  53. {
  54.     cerr << "{";
  55.     _print(p.ff);
  56.     cerr << ",";
  57.     _print(p.ss);
  58.     cerr << "}";
  59. }
  60. template <class T>
  61. void _print(vector<T> v)
  62. {
  63.     cerr << "[ ";
  64.     for (T i : v)
  65.     {
  66.         _print(i);
  67.         cerr << " ";
  68.     }
  69.     cerr << "]";
  70. }
  71. template <class T>
  72. void _print(set<T> v)
  73. {
  74.     cerr << "[ ";
  75.     for (T i : v)
  76.     {
  77.         _print(i);
  78.         cerr << " ";
  79.     }
  80.     cerr << "]";
  81. }
  82. template <class T>
  83. void _print(multiset<T> v)
  84. {
  85.     cerr << "[ ";
  86.     for (T i : v)
  87.     {
  88.         _print(i);
  89.         cerr << " ";
  90.     }
  91.     cerr << "]";
  92. }
  93. template <class T, class V>
  94. void _print(map<T, V> v)
  95. {
  96.     cerr << "[ ";
  97.     for (auto i : v)
  98.     {
  99.         _print(i);
  100.         cerr << " ";
  101.     }
  102.     cerr << "]";
  103. }
  104.  
  105. void solve()
  106. {
  107.     int n;
  108.     cin >> n;
  109.     vector<int> v(n);
  110.     for (int i = 0; i < n; i++)
  111.     {
  112.         cin >> v[i];
  113.     }
  114.     int maxindex = distance(v.begin(), max_element(all(v)));
  115.     while (maxindex != 0)
  116.     {
  117.         maxindex = distance(v.begin(), max_element(all(v)));
  118.         if (v[maxindex - 1] < v[maxindex])
  119.         {
  120.             int diff = (v[maxindex] - v[maxindex - 1]);
  121.             int x;
  122.             if (diff & 1)
  123.             {
  124.                 x = ((v[maxindex] - v[maxindex - 1]) / 2) + 1;
  125.             }
  126.             else
  127.             {
  128.                 x = ((v[maxindex] - v[maxindex - 1]) / 2);
  129.             }
  130.  
  131.             v[maxindex] -= x;
  132.             v[maxindex - 1] += x;
  133.         }
  134.     }
  135.     cout << *max_element(all(v)) << endl;
  136. }
  137.  
  138. int32_t main()
  139. {
  140. #ifndef ONLINE_JUDGE
  141.     freopen("Error.txt", "w", stderr);
  142. #endif
  143.  
  144.     ios_base::sync_with_stdio(false);
  145.     cin.tie(0);
  146.     cout.tie(0);
  147.  
  148.     int t = 1;
  149.     cin >> t;
  150.     while (t--)
  151.     {
  152.         solve();
  153.     }
  154. }
Parsed in 0.047 seconds