AlexAvram

dumitras 7.03 triplet

Mar 7th, 2026
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. ifstream fin("bac.in");
  6.  
  7. /*
  8. al doilea numar din triplet este egal cu media geometrica a celorlalte 2 numere:
  9. mij=sqrt(st*dr) <=>
  10. mij^2=st*dr <=>
  11. st, mij, dr sunt in progresie geometrica (nu cred ca ma ajuta)
  12.  
  13. raman la mij^2=st*dr;
  14. */
  15. bool verificare(int a, int b, int c)
  16. {
  17.     if (b*b==a*c)
  18.         return 1;
  19.     return 0;
  20. }
  21. int main()
  22. {
  23.     int st, mij, dr;
  24.     fin>>st>>mij>>dr;
  25.     if (verificare(st, mij, dr))
  26.     {
  27.         cout<<st<<' '<<mij<<' '<<dr<<'\n';
  28.         return 0;
  29.     }
  30.     int x; bool ok;
  31.     while(fin>>x)
  32.     {
  33.         st=mij, mij=dr, dr=x;
  34.         if (verificare(st, mij, dr))
  35.         {
  36.             cout<<st<<' '<<mij<<' '<<dr<<'\n';
  37.             return 0;
  38.         }
  39.  
  40.     }
  41.     cout<<"Nu exista";
  42.     return 0;
  43. }
  44. /*
  45. varianta e destul de bezic da nu cred ca se poate optimiza mai mult;
  46. ca si spatiu e clar ca e ok; ca si timp de executie nu cred ca pot verifica
  47. mai rapid decat 2 operatii de inmultire si nici nu cred ca pot parcurge sirul
  48. mai rapid, sau sa sar peste unele elemente, ca s-ar putea sa sar fix peste triplet;
  49. */
  50.  
Advertisement
Add Comment
Please, Sign In to add comment