AlexAvram

problema dumitras 27.01

Jan 27th, 2026
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. ifstream fin("cifre.in");
  6.  
  7. int main()
  8. {
  9.     short st, dr;
  10.     /*st va fi mereu valoarea primei cifre din secventa
  11.     iar dr ultima valoare citita
  12.     */
  13.     fin>>st;
  14.     int l_c=1,  ind_st=1, val=st;
  15.     int  l_max=1, ind_st_max=1;
  16.     /*
  17.     l_c lungime curenta
  18.     ind_st indicele inceputului de secventa
  19.     val valoarea cifrei
  20.     l_max lungime maxima
  21.     ind_st_max indicele inceputului de secventa de lungime maxima
  22.  
  23.     le declar direct =1 pentru cazul in care am o singura cifra in sir
  24.     */
  25.     while (fin>>dr)
  26.     {
  27.         if (st==dr)
  28.         {
  29.             l_c++;
  30.             //cazu convenabil, cresc lungimea
  31.         }
  32.         else
  33.         {
  34.             if (l_c>l_max)
  35.                 l_max=l_c, val=st, ind_st_max=ind_st;
  36.             //daca descoper o secventa mai lunga, fac schimbarile necesare
  37.  
  38.             ind_st=ind_st+l_c, l_c=1, st=dr;
  39.             //imi reinitializez valorile ca sa pot numara din nou
  40.         }
  41.     }
  42.     if (l_c>l_max)
  43.         l_max=l_c, val=st, ind_st_max=ind_st;
  44.     //verific si daca mi se termina citirea inainte sa
  45.     //termin de verificat ultima secventa
  46.  
  47.     cout<<ind_st_max<<' '<<ind_st_max+l_max-1<<' '<<val<<'\n';
  48.  
  49.     return 0;
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment