Advertisement
El_GEMMY

curr

Oct 14th, 2021
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3.  
  4. using namespace std;
  5. using namespace __gnu_pbds;
  6.  
  7. typedef long long ll;
  8. typedef unsigned long long ull;
  9. typedef tree<int,null_type,less<>,rb_tree_tag,tree_order_statistics_node_update> indexed_set;
  10.  
  11. #define all(v) v.begin(),v.end()
  12. #define rall(v) v.rbegin(),v.rend()
  13. #define MOD 1000000007
  14. #define PI 3.14159265
  15. //#define ceil(a, b) ((a / b) + (a % b ? 1 : 0))
  16. #define imin INT_MIN
  17. #define imax INT_MAX
  18. #define nl '\n'
  19. #define modulo(a, b, m) ((a % m) * (b % m)) % m
  20.  
  21. void Start_Crushing() {
  22.     ios::sync_with_stdio(false);
  23.     cin.tie(nullptr);
  24.     cout.tie(nullptr);
  25. #ifndef ONLINE_JUDGE
  26.     freopen("input.txt", "r", stdin);
  27.     freopen("output.txt", "w", stdout);
  28. #endif
  29. }
  30. //vector<int> dx = {0, 0, 1, -1, 1, 1, -1, -1}, dy = {1, -1, 0, 0, 1, -1, 1, -1};
  31. //int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};
  32.  
  33. void solve(){
  34.     int n; cin >> n;
  35.     map<int, int> rem;
  36.     for(int i = 0; i < n; i++){
  37.         int x; cin >> x;
  38.         rem[x % 3]++;
  39.     }
  40.     ll sum = 0;
  41.  
  42.     pair<int, int> maxi = {imin, imin};
  43.     for(auto& [x, y] : rem){
  44.         if(y > maxi.second) maxi = {x, y};
  45.     }
  46. //   while(min + 1 < max)
  47. //  5 4
  48.  
  49.     int diff = rem[maxi.first] - rem[(maxi.first + 1) % 3];
  50.     sum += diff;
  51.     rem[maxi.first] -= diff, rem[(maxi.first + 1) % 3] -= diff;
  52.  
  53.  
  54.     cout << sum;
  55. }
  56.  
  57. int main(){
  58.     //freopen("equal.in", "r", stdin);
  59.     Start_Crushing();
  60.     int t = 1;
  61.     /*is Single Test case?*/ cin >> t;
  62.     while (t--) {
  63.         solve();
  64.         if(!t) break;
  65.         cout << "\n";
  66.     }
  67.  
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement