Va rog,e urgent!Problema informatica
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <fstream>
int main()
{
int numar, lungime = 0, lungimeMaxima = -1, numarMaxime;
bool paritate, paritateSecventa;
std::ifstream fisierIn("bac.txt");
while (fisierIn.peek() && ! fisierIn.eof()) {
fisierIn >> numar;
fisierIn.get();
paritate = numar % 2;
// la procesarea primului număr încă nu avem paritatea secvenței
if (! lungime) {
paritateSecventa = paritate;
}
if (paritateSecventa != paritate) { // schimbare paritate
if (lungimeMaxima < lungime) { // nou record de lungime
lungimeMaxima = lungime;
numarMaxime = 1;
} else if (lungimeMaxima == lungime) { // record egalat
numarMaxime++;
}
paritateSecventa = paritate;
lungime = 1;
} else { // aceași paritate
lungime++;
}
}
fisierIn.close();
// ultima secvență nu a fost luată în evidență în interiorul while
if (lungimeMaxima < lungime) { // nou record de lungime
lungimeMaxima = lungime;
numarMaxime = 1;
} else if (lungimeMaxima == lungime) { // record egalat
numarMaxime++;
}
std::cout << numarMaxime << " " << lungimeMaxima << std::endl;
}
Explicație: