Informatică, întrebare adresată de morcov64, 9 ani în urmă

AJUTOR!!
Cerința
Se consideră un şir s format din numere întregi. Să se determine numărul de termeni ai şirului obţinut prin eliminarea din cele două extremităţi ale lui s a unui număr minim de termeni, astfel încât şirul rezultat să înceapă şi să se termine cu câte un număr par.

Date de intrare
Fișierul de intrare platou4.in conține numere întregi separate prin spații.

Date de ieșire
Fișierul de ieșire platou4.out va conține pe prima linie numărul k, reprezentând lungimea șirului obținut.

Restricții și precizări
fișierul de intrare conține cel mult 1000 de numere întregi
numerele din fișier de intrare vor fi din intervalul [-99,99]
fișierul de intrare conține cel puțin un număr par.

Exemplu
platou4.in

7 -22 -13 10 31 41 -6 2 101 83
platou4.out

7
Explicație
Sunt eliminate din șirul s numerele 7 101 83.

Răspunsuri la întrebare

Răspuns de Razzvy
9
#include <fstream>
using namespace std;

ifstream fin("platou4.in");
ofstream fout("platou4.out");

int main()
{
    int x, n = 0, p1 = 0, p2;
    
    while(fin>>x)
       {
        n++;
        if(x % 2 == 0)
        {
            if(!p1) p1 = n;
            else p2 = n;
        }
    }
    
    fout<<p2 - p1 + 1;
}
Răspuns de stassahul
5
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("platou4.in");
ofstream fout ("platou4.out");

int pi,pf,p,y;

int main()
{

    while(fin >> y)
    {
        p++;

        if(y%2==0 and pf==0)
            pi=p;

        if(y%2==0 and pi!=0)
            pf=p;
    }

    fout << abs(pf-pi)+1;

    return 0;

}

Alte întrebări interesante