fork download
  1. // ORZVANH14
  2. //⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣤⣤⣤⣤⣶⣦⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀
  3. //⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⠛⠉⠙⠛⠛⠛⠛⠻⢿⣿⣷⣤⡀⠀⠀⠀⠀⠀
  4. //⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠋⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠈⢻⣿⣿⡄⠀⠀⠀⠀
  5. //⠀⠀⠀⠀⠀⠀⠀⣸⣿⡏⠀⠀⠀⣠⣶⣾⣿⣿⣿⠿⠿⠿⢿⣿⣿⣿⣄⠀⠀⠀
  6. //⠀⠀⠀⠀⠀⠀⠀⣿⣿⠁⠀⠀⢰⣿⣿⣯⠁⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣷⡄⠀
  7. //⠀⠀⣀⣤⣴⣶⣶⣿⡟⠀⠀⠀⢸⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣷⠀
  8. //⠀⢰⣿⡟⠋⠉⣹⣿⡇⠀⠀⠀⠘⣿⣿⣿⣿⣷⣦⣤⣤⣤⣶⣶⣶⣶⣿⣿⣿⠀
  9. //⠀⢸⣿⡇⠀⠀⣿⣿⡇⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀
  10. //⠀⣸⣿⡇⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠉⠻⠿⣿⣿⣿⣿⡿⠿⠿⠛⢻⣿⡇⠀⠀
  11. //⠀⣿⣿⠁⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣧⠀⠀
  12. //⠀⣿⣿⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀
  13. //⠀⣿⣿⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀
  14. //⠀⢿⣿⡆⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⠀⠀
  15. //⠀⠸⣿⣧⡀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠃⠀⠀
  16. //⠀⠀⠛⢿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⣰⣿⣿⣷⣶⣶⣶⣶⠶⠀⢠⣿⣿⠀⠀⠀
  17. //⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⠀⠀⠀⣿⣿⡇⠀⣽⣿⡏⠁⠀⠀⢸⣿⡇⠀⠀⠀
  18. //⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⠀⠀⠀⣿⣿⡇⠀⢹⣿⡆⠀⠀⠀⣸⣿⠇⠀⠀⠀
  19. //⠀⠀⠀⠀⠀⠀⠀⢿⣿⣦⣄⣀⣠⣴⣿⣿⠁⠀⠈⠻⣿⣿⣿⣿⡿⠏⠀⠀⠀⠀
  20. //⠀⠀⠀⠀⠀⠀⠀⠈⠛⠻⠿⠿⠿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. #include <bits/stdc++.h>
  30.  
  31. using namespace std;
  32.  
  33. #define int long long
  34. #define ld long double
  35. #define pb push_back
  36. #define fi first
  37. #define se second
  38. #define nn '\n'
  39. #define pi pair<ll,ll>
  40. #define unmp unordered_map
  41. #define uns unordered_set
  42. #define lb lower_bound
  43. #define ub upper_bound
  44. #define pq priority_queue
  45. #define faster ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  46. #define TASK " "
  47. const int INF = 1e10;
  48. int mod = 1e9+7;
  49. const int N = 1e5 + 5;
  50. int MOD = 998244353;
  51. int bit[200000];
  52. int n;
  53. int a[N];
  54. //int t[N * 4];
  55. //int a[N];
  56. //int ps[N];
  57. //int tong = -INF;
  58. //void build(int id, int l, int r){
  59. // if(l == r){
  60. // t[id] = ps[l];
  61. // }
  62. // else{
  63. // int m = (l + r) / 2;
  64. // build(2* id, l, m);
  65. // build(2*id + 1, m + 1, r);
  66. // t[id] = t[2 * id] + t[2 * id + 1];
  67. // cout << id << " " << t[id] << nn;
  68. // }
  69. //}
  70. //void update(int id, int l, int r, int pos, int val){
  71. // if(l == r){
  72. // t[id] = val;
  73. // }
  74. // else{
  75. // int m = ( l + r) /2;
  76. // if(pos <= m){
  77. // update(2* id,l, m, pos, val);
  78. // }
  79. // else{
  80. // update(2* id + 1, m + 1, r, pos, val);
  81. // }
  82. // t[id] = t[2 * id] + t[2*id + 1];
  83. // }
  84. //}
  85. //int query(int id, int u, int v, int l, int r){
  86. // if(l > v || u > r ) return 0;
  87. // if(u >= l && v <= r){
  88. // return t[id];
  89. // }
  90. // else{
  91. // int m = (u + v) / 2;
  92. // int s1 = query(2*id, u, m, l, r );
  93. // int s2 = query(2 * id + 1, m + 1, v, l , r);
  94. // return max(tong, s1 + s2);
  95. // }
  96. //}
  97. bool ok;
  98. int kq = -1;
  99. signed main(){
  100. ios_base::sync_with_stdio(0);
  101. cin.tie(0);
  102. cout.tie(0);
  103. if(fopen(TASK".INP","r")){
  104. freopen(TASK".INP","r",stdin);
  105. freopen(TASK".OUT","w",stdout);
  106. }
  107. cin >> n;
  108. for(int i = 1;i <= n ;i++){
  109. cin >> a[i];
  110. }
  111. int l = 1, r= 2, k = -1;
  112. while(r <= n){
  113. if(a[r] != a[r - 1] && ok){
  114. l = k;
  115. k = r;
  116. kq = max(kq, r - l + 1);
  117. r++;
  118. }
  119. else if(a[r] != a[r - 1] && !ok){
  120. k = r;
  121. ok = true;
  122. kq = max(kq, r - l + 1);
  123. r++;
  124. }
  125. else if(ok){
  126. r++;
  127. kq = max(kq, r - l + 1);
  128. }
  129. else{
  130. r++;
  131. }
  132. }
  133. cout << kq - 1 << nn;
  134. return 0;
  135. }
  136.  
Success #stdin #stdout 0.01s 5300KB
stdin
Standard input is empty
stdout
-2