Advertisement
Josif_tepe

Untitled

Jul 10th, 2022
950
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <stack>
  6. #include <fstream>
  7. #include <map>
  8. using namespace std;
  9.  
  10. int n,m;
  11. int x[500000];
  12.  
  13. int ok(int num)
  14. {
  15.     map<int, int> cnt;
  16.     int problems= 0 ;
  17.     for(int i = 1; i <= m; i++) {
  18.         if(cnt[x[i]] < num) {
  19.             cnt[x[i]]++;
  20.         }
  21.         else {
  22.             problems++;
  23.         }
  24.     }
  25.     for(int i = 1; i <= n; i++) {
  26.         problems -= (num - cnt[i]) / 2;
  27.     }
  28.     if(problems <= 0) return 1;
  29.     return 0;
  30. }
  31.  
  32. int main()
  33. {
  34.     int t;
  35.     cin>>t;
  36.     while(t--)
  37.     {
  38.         cin>>n>>m;
  39.         for(int i=1;i<=m;i++)
  40.         {
  41.             cin>>x[i];
  42.         }
  43.         int ans=2e9;
  44.         int l=1;
  45.         int r=m * 4;
  46.         int mid=(l+r)/2;
  47.         while(l<=r)
  48.         {
  49.             mid=(l+r)/2;
  50.             if(ok(mid))
  51.             {
  52.                 ans=min(ans,mid);
  53.                 r=mid-1;
  54.             }
  55.             else
  56.             {
  57.                 l=mid+1;
  58.             }
  59.         }
  60.         cout<<ans<<endl;
  61.     }
  62.     return 0;
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement