fbpx

Problema #1436 – distanta_maxima – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Fie SS un şir cu numere naturale nenule. Considerând distanţa dintre elementele SiSi şi SjSj ca fiind egală cu |ij||ij|, scrieţi un program care determină distanţa maximă dintre 2 valori egale din şir.

Date de intrare

Fișierul de intrare distanta.in conține pe prima linie maxim 100.000 de numere naturale, reprezentând elementele şirului SS.

Date de intrare

Fișierul de ieşire distanta.out va conţine pe prima linie distanţa maximă dintre 2 valori egale din şir. Dacă şirul are toate elementele distincte, distanţa va fi egală cu 00.

Restricții și precizări

  • Fiecare element al şirului este un număr natural din intervalul [1,103][1,103]
  • Elementele şirului sunt numerotate de la 11

).

#include <bits/stdc++.h>
using namespace std;
ifstream cin("distanta.in");
ofstream cout("distanta.out");
int main()
{
    int x , f[1001]={0} , v[1001] , i = 0 , max = 0;
    while(cin >> x)
    {
        if(f[x]==1)
        {
            if(i - v[x] > max)
                max=i-v[x];
        }
        else v[x]=i , f[x]++;
        i++;
    }
    cout << max;
    return 0;
}
Comentarii

S-ar putea sa iti placa