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

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
#1609

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream fin("paralele.in");

ofstream fout("paralele.out");

int n,i,j,x[1001],d[2000001],m,dif;

int main()

{

   fin >> n;

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

   {

       fin >> x[i];

   }

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

   {

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

       {

          dif= x[j]-x[i];

          if (dif<0) dif*=-1;

          ++d[dif];

       }

   }

   m=d[0];

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

       if (d[i]>m) m=d[i];

   fout << m;

}

Explicație:

a fost problemă cu dif, ea poate fi negativă....

Alte întrebări interesante