fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. template<class S, class T> inline S chmax(S &a, T b){
  5. if(a<b){
  6. a=b;
  7. }
  8. return a;
  9. }
  10. #define main dummy_main
  11. int main(){
  12. return 0;
  13. }
  14. #undef main
  15. int N;
  16. int cnt[100000];
  17. class Solution{
  18. public:
  19. int maxEqualFreq(vector<int>& A){
  20. int i;
  21. int k;
  22. int x;
  23. int y;
  24. int res = 0;
  25. set<int> s;
  26. set<int>::iterator it;
  27. map<int,int> mp;
  28. N = A.size();
  29. for(i=(0);i<(100000);i++){
  30. cnt[i] = 0;
  31. }
  32. for(i=(0);i<(N);i++){
  33. A[i]--;
  34. }
  35. for(i=(0);i<(N);i++){
  36. k = cnt[A[i]];
  37. if(k){
  38. if(--mp[k]==0){
  39. s.erase(k);
  40. }
  41. }
  42. cnt[A[i]]++;
  43. k = cnt[A[i]];
  44. if((++mp[k])==1){
  45. s.insert(k);
  46. }
  47. if(s.size()==1){
  48. x = *s.begin();
  49. if(x==1){
  50. chmax(res, i + 1);
  51. }
  52. if(mp[x]==1){
  53. chmax(res, i + 1);
  54. }
  55. }
  56. if(s.size()==2){
  57. it = s.begin();
  58. x = *(it++);
  59. y = *(it++);
  60. if(x==1 && mp[x]==1){
  61. chmax(res, i + 1);
  62. }
  63. if(x+1==y && mp[y]==1){
  64. chmax(res, i + 1);
  65. }
  66. }
  67. }
  68. return res;
  69. }
  70. }
  71. ;
  72. // cLay varsion 20191102-1
  73.  
  74. // --- original code ---
  75. // #define main dummy_main
  76. // {}
  77. // #undef main
  78. //
  79. // int N;
  80. // int cnt[1d5];
  81. //
  82. // class Solution {
  83. // public:
  84. // int maxEqualFreq(vector<int>& A) {
  85. // int k, x, y, res = 0;
  86. // set<int> s;
  87. // set<int>::iterator it;
  88. // map<int,int> mp;
  89. //
  90. // N = A.size();
  91. // rep(i,1d5) cnt[i] = 0;
  92. // rep(i,N) A[i]--;
  93. //
  94. // rep(i,N){
  95. // k = cnt[A[i]];
  96. // if(k) if(--mp[k]==0) s.erase(k);
  97. // cnt[A[i]]++;
  98. // k = cnt[A[i]];
  99. // if((++mp[k])==1) s.insert(k);
  100. // if(s.size()==1){
  101. // x = *s.begin();
  102. // if(x==1) res >?= i + 1;
  103. // if(mp[x]==1) res >?= i + 1;
  104. // }
  105. // if(s.size()==2){
  106. // it = s.begin();
  107. // x = *(it++);
  108. // y = *(it++);
  109. // if(x==1 && mp[x]==1) res >?= i + 1;
  110. // if(x+1==y && mp[y]==1) res >?= i + 1;
  111. // }
  112. // }
  113. // return res;
  114. // }
  115. // };
  116.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty