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

Ma poate ajuta cineva cu o problema pe pb-info. Este problema 663:
Cerinţa:
Se dă un șir cu n elemente, numere naturale nenule, în care cel puţin un element se repetă. Să se determine lungimea maximă a unei secvenţe de elemente din şir, cu proprietatea că primul şi ultimul element din secvenţă au aceeaşi valoare.
Date de intrare:
Fişierul de intrare lungime1.in conţine pe prima linie numărul n; urmează n numere naturale separate prin spaţii, reprezentând elementele şirului, ce pot fi dispuse pe mai multe linii.
Date de ieşire:
Fişierul de ieşire lungime1.out va conţine pe prima linie numărul L, reprezentând lungimea maximă determinată.
Restricţii şi precizări:
1 ≤ n ≤ 100.000
elementele șirului sunt numere naturale nenule mai mici sau egale cu 100.000


Darrin2: In Pascal sau C++?

Răspunsuri la întrebare

Răspuns de boiustef
2

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("lungime1.in");

ofstream g("lungime1.out");

int n, L=1, i, num, len, a[100001], ind[100001];

int main()

{

   f >> n;


   for (i=1; i<=n; ++i)

   {

       f >> num;

       if (ind[num]==0 ) {ind[num]=i;}


       len=i-ind[num]+1;

       ++a[num];

       if (len>L) {L=len; }

   }

   g << L;

}


boiustef: salut... in vectorul b am memorizat prima pozitie a numarului in sir
boiustef: adica indicele lui
boiustef: daca sunt intrebari , le puneti... succese
tudor358: salut... de ce trb numarat de cate ori intalnim numarul in array-ul "a"?
Alte întrebări interesante