fork download
  1. //(c)Terminator
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. enum state {
  7. S_OFFSET = 0,
  8. S_COUNT = 1
  9. };
  10.  
  11.  
  12.  
  13. int main(void){
  14. const int N = 10;
  15. int arr[N] = {
  16. 1, 0, 1, 1, 1, 1, 0, 1, 0, 0
  17. };
  18.  
  19. int vals[2] = {0};
  20. int mseq[2] = {0};
  21.  
  22. int prev = arr[0];
  23. int i = 0;
  24. do {
  25.  
  26. if((i == N) || (prev != arr[i])){
  27. if(vals[prev] > mseq[S_COUNT]){
  28. mseq[S_OFFSET] = i - vals[prev];
  29. mseq[S_COUNT] = vals[prev];
  30. }
  31. if(i == N)
  32. break;
  33. vals[0] = vals[1] = 0;
  34. }
  35.  
  36. ++vals[arr[i]];
  37. prev = arr[i];
  38.  
  39. } while(++i <= N);
  40.  
  41. cout << "value: " << arr[mseq[S_OFFSET]] << endl;
  42. cout << "index: " << mseq[S_OFFSET] << endl;
  43. cout << "count: " << mseq[S_COUNT] << endl;
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
value: 1
index: 2
count: 4