fork download
  1. #include <iostream>
  2. using namespace std;
  3. /*
  4. Declarăm și citim variabilele “x” și “n”.
  5. Declaram vectorul “v”
  6. Cu ajutorul unei structuri repetitive “for” citim șirul de “n” numere.
  7. Declaram variabila “count” pe care o initializam cu valoarea zero.
  8. Declaram variabila “start” si “end”.
  9.  
  10. Declaram “biggestCount” = 0, “biggestStart”, “biggestEnd”
  11. Cu ajutorul unei structuri repetitive care rulează de la “1” la “n”:
  12. Daca elementul curent e egal cu “x”:
  13. Incrementam “count”.
  14. Prima data cand intalnim valoarea lui x:
  15. Variabila “start” va lua valoarea indicele curent.
  16. “end” se actualizeaza mereu cu valoarea indicelui curent.
  17. Daca “biggestCount” este mai mic decat “count”:
  18. Actualizam pe “biggestCount” cu “count”
  19. Actualizam pe “biggestStart” cu “start”.
  20. Actualizam pe “biggestEnd” cu “end”.
  21. Altfel:
  22. Resetam variabilele “count”, “start” si “end”
  23.  
  24. Afisam “biggestStart”, “biggestEnd”.
  25.  
  26.  
  27. */
  28.  
  29. int main() {
  30. int x, n;
  31. cin >> x >> n;
  32. int v[21];
  33. for (int i = 1; i <= n; ++i) {
  34. cin >> v[i];
  35. }
  36. int count = 0, start = 0, end, biggestCount = 0, biggestStart, biggestEnd;
  37. for (int i = 1; i <= n; ++i) {
  38. if (v[i] == x) {
  39. ++count;
  40. if (start == 0) {
  41. start = i;
  42. }
  43. end = i;
  44. if (count > biggestCount) {
  45. biggestCount = count;
  46. biggestStart = start;
  47. biggestEnd = end;
  48. }
  49. } else {
  50. count = 0;
  51. start = 0;
  52. end = 0;
  53. }
  54. }
  55. cout << biggestStart << " " << biggestEnd;
  56. return 0;
  57. }
Success #stdin #stdout 0.01s 5296KB
stdin


4 11
4 4 2 4 4 4 3 4 4 4 3 -> 4 6



stdout
4 6