Salut! am intalnit o problema in una din variantele de informatica pentru bac din 2009. Suna astfel:
Scrieţi un program C/C++ care citeşte numerele din fişierul date.txt, determină şi
afişează pe ecran numărul de elemente ale celei mai lungi secvenţe ordonate strict
descrescător, formate din valori citite consecutiv din fişier. Alegeţi o metodă de rezolvare
eficientă din punctul de vedere al timpului de executare.
Exemplu: dacă fişierul date.in conţine
5 2 19 4 3 6 3 2 1 0 8
pe ecran se afişează:
5
asta este ceea ce am incercat sa fac:
Anexe:
boiustef:
nu cred că este eficient... folosesti vectori... nu poţi da o imagine a problemei, că cred mai era ceva acolo... câte numere poate avea fişierul şi dimensiunea numerelor din fişier
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("date.txt");
int a,b,secv,secvmax;
int main()
{
fin >> a;
secv=1; secvmax=1;
while (fin >> b)
{
if (b<a) ++secv;
else
{
if (secv>secvmax) secvmax=secv;
secv=1;
}
a=b;
}
cout << secvmax;
}
Explicație:
cred din start se spune că în fişier este cel puţin 1 număr
if (secv > secvmax) secvmax=secv;
cout << secvmax;
https://pastebin.com/McTqayRg
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Biologie,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă