306
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