fork(1) download
  1. //BÀI 1 : BẦU CỬ (CODE)
  2.  
  3.  
  4. #include <bits/stdc++.h>
  5.  
  6. using namespace std;
  7.  
  8. int n,k,T;
  9. int a[100000 + 5];
  10. void doc()
  11. {
  12. cin>>n>>k>>T;
  13. for(int i = 1; i <= n; i ++ )cin>>a[i];
  14. }
  15.  
  16. void sub1()
  17. {
  18. int sl1 = 0,slmx = 0,dem = 0;
  19. // sl1 : la so luong nguoi vote cho 1
  20. // slmx la so luong nguoi cho nguoi cao co luong vote cao nhat
  21.  
  22. for(int i = 1; i <= n; i ++)
  23. {
  24. if(a[i] == 1)sl1 ++;
  25. }
  26.  
  27. for(int i = 2; i <= k ; i++)
  28. {
  29. int dem = 0;
  30. for(int j = 1; j <= n; j++)
  31. {
  32. if(a[j] == i)dem++;
  33. }
  34. slmx = max(slmx,dem);
  35. }
  36.  
  37. if(sl1 >= slmx)cout<<"NO NEED";
  38. else if(sl1 < slmx && slmx - sl1 <= T)
  39. {
  40. cout<<"JUST NEED "<<slmx - sl1;
  41. }
  42. else cout<<"IMPOSSIBLE";
  43.  
  44. }
  45.  
  46. int sl[100000 + 5];
  47. void sub2()
  48. {
  49. for(int i = 1; i <= n;i ++ )sl[a[i]] ++;
  50.  
  51. int slmx = 0;
  52.  
  53. for(int i = 2; i <= k;i ++ )slmx = max(slmx,sl[i]);
  54.  
  55. if(sl[1] >= slmx)cout<<"NO NEED";
  56. else if(sl[1] < slmx && slmx - sl[1] <= T)
  57. {
  58. cout<<"JUST NEED "<<slmx - sl[1];
  59. }
  60. else cout<<"IMPOSSIBLE";
  61. }
  62.  
  63. int main() {
  64.  
  65. doc();
  66. if(n <= 3e3 && k <= 3e3)sub1();
  67. else sub2();
  68.  
  69. return 0;
  70. }
  71.  
Success #stdin #stdout 0.01s 5320KB
stdin
4 2 3
1 2 2 2
stdout
JUST NEED 2