Advertisement
GerexD

lol

Jun 19th, 2020
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. /**
  2. Numim k-secvență într-un șir de numere naturale, o succesiune de termeni aflați pe poziții consecutive
  3. în șir, cu proprietatea că sunt divizibili cu numărul natural nenul k. Lungimea secvenței este egală cu
  4. numărul de termeni ai săi.
  5. Fișierul bac.txt conține numere naturale din intervalul [0,109]: pe prima linie un număr nenul k, iar
  6. pe a doua linie un șir de cel mult 106 numere, separate prin câte un spațiu. Cel puțin un termen din șir
  7. este divizibil cu k. Se cere să se afișeze pe ecran două valori, separate printr-un spațiu, reprezentând
  8. lungimea maximă a unei k-secvențe din șirul aflat în fișier, respectiv numărul de astfel de secvențe.
  9. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate și al timpului de executare.
  10. Exemplu: dacă fișierul are conținutul alăturat,
  11. se afișează 4 2
  12. 5
  13. 2 10 5 20 21 0 10 60 15 3 9 20 20 5 45
  14. a. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)
  15. b. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)*/
  16. ifstream f("bac.txt");
  17. int k,n,db=0,maxi=0,sordb=0;
  18. f>>k;
  19. while(f>>n)
  20. {
  21. if(n%k==0) db++;
  22. else{ if(db>=2) sordb++;
  23. if(db>maxi) maxi=db;
  24. db=0;
  25. }
  26. }
  27. if(db>maxi) maxi=db;
  28. cout<<maxi<<" "<<sordb;
  29.  
  30.  
  31. return 0;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement