fbpx

Problema #1609 – paralele – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau N drepte paralele în sistemul de axe ortogonale xOy, acestea intersectând axa Ox în N puncte de abscise întregi x1, x2, ... , xN. Determinaţi numărul maxim M de perechi de drepte dintre cele date, pentru care distanţa dintre dreptele din orice pereche este aceeaşi.

Date de intrare

Fișierul de intrare paralele.in conține pe prima linie numărul N de drepte, iar pe a doua linie abscisele punctelor de intersecţie ale celor N drepte cu axa Ox.

Date de ieșire

Fișierul de ieșire paralele.out va conține pe prima linie numărul M.

Restricții și precizări

  • 2 ≤ N ≤ 1.000
  • -1.000.000 ≤ x1,x2,...,xN ≤ 1.000.000

Exemplu

paralele.in

3
1 5 9 

paralele.out

2

Explicație

Distanţa dintre prima şi a doua dreapta este egală cu distanţa dintre a doua şi a treia dreaptă, deci sunt două perechi de drepte cu aceeaşi distanţă între ele.

#include <bits/stdc++.h>

using namespace std;

ifstream cin("paralele.in");
ofstream cout("paralele.out");

int a[1001] , f[2000001];

int main()
{
    int n;
    cin >> n;
    for(int i = 1 ; i <= n ; ++i)
        cin >> a[i];
    int val , fmax=0;
    for(int i = 1 ; i <= n ; ++i)
    {
        for(int j = i + 1 ; j <= n ; ++j)
        {
            val = abs(a[i]-a[j]);
            f[val]++;
            if(f[val] > fmax)
                fmax = f[val];
        }
    }
    cout << fmax;
    return 0;
}
Comentarii

S-ar putea sa iti placa