Informatică, întrebare adresată de anapodoprigorac, 8 ani în urmă

Se dau n si p doua numere naturale si o secventa de n numere naturale. Sa se afiseze prima si ultima pozitie a lui p in secventa. Daca p nu apare de doua ori, se va afisa mesajul “nu apare de doua ori”.
Citirea se face din fisierul “pu.in” si afisarea in fisierul “pu.out”

Obs:
2 <= n <= 1000
0 <= p, elemente din secvnta <= 1.000.000
pozitiile in secventa incep de la 0 si se termina cu n-1

Exemplu:
pu.in
10 5
3 4 5 7 5 8 5 5 9 2
pu.out
2 7

pu.in
6 3
6 2 1 8 3 9
pu.out

nu apare de doua ori

In C++ va rog​

Răspunsuri la întrebare

Răspuns de VxF
1

Răspuns:

#include <iostream>

#include <fstream>

int main()

{

   int n, p, numar, prima = -1, ultima = -1;

   std::ifstream fisierIn("pu.in");

   fisierIn >> n >> p;

   for (int i = 0; i < n; i++) {

       fisierIn >> numar;

       if (numar == p) {

           if (prima < 0) {

               prima = i;

           } else {

               ultima = i;

           }

       }

   }

   fisierIn.close();

   std::ofstream fisierOut("pu.out");

   if (ultima < 0) {

       fisierOut << "nu apare de doua ori" << std::endl;

   } else {

       fisierOut << prima << " " << ultima << std::endl;

   }

   fisierOut.close();

}

Alte întrebări interesante