Zabavno dejstvo iz sveta matematike
1/998001 nam da urejeno zaporedje od 000 do 999. 1/998001 = 0.000001002003004...

Zabavno dejstvo iz sveta računalništva
Leta 1936 so Rusi naredili računalnik na vodo. (Vir: http://gizmodo.com/5879106/the-russian-computer-that-ran-on-water)

Črte

Moderatorji: hinkopihpih, Matic Conradi

lukazlatecan
Site Admin
Prispevkov: 22
Pridružen: Po Apr 24, 2017 5:29 pm
Kraj: Celje

Črte

OdgovorNapisal/-a lukazlatecan » Ne Jul 02, 2017 10:27 pm

V ravnini je podanih N točk, ki imajo celoštevilske koordinate. Točke lahko tudi sovpadajo (tj. dve ali več točk ima lahko enake koordinate). Med vsemi pari točk narišemo daljice. Napišite program, ki bo izračunal, koliko parov daljic je enake dolžine.

Vhodni podatki
V prvi vrstici se nahaja število točk N. V vsaki od naslednjih N vrstic sta podani s presledkom ločeni števili [math] in [math], tj. koordinati i-te točke.

Omejitve vhodnih podatkov
  • 1≤N≤12000
  • 0≤[math]≤20000

Izhodni podatki
Izpišite število enako dolgih parov daljic.

Primer

Vhod

Koda: Izberi vse

10
0 18
13 5
14 19
18 2
6 17
6 7
0 2
1 19
6 11
0 9


Izhod

Koda: Izberi vse

7
Mathematicians have tried in vain to this day to discover some order in the sequence of prime numbers, and we have reason to believe that it is a mystery into which the human mind will never penetrate. - Leonhard Euler

hinkopihpih
Prispevkov: 10
Pridružen: Ne Apr 30, 2017 2:11 pm

Re: Črte

OdgovorNapisal/-a hinkopihpih » Po Jul 03, 2017 10:57 am

Koda: Izberi vse

import java.util.*;
import java.lang.Math.*;

public class Crte
{
   public static void main(String[]args)
   {
      Scanner skan = new Scanner(System.in);
      int n = skan.nextInt();
      List<int[]> koordinate = new ArrayList<int[]>();
      List<double[]> razdalje = new ArrayList<double[]>();

      for(int i = 0; i < n; i++)
      {
         int x = skan.nextInt();
         int y = skan.nextInt();
         int[] read = {x,y};
         
         for(int j = 0; j < koordinate.size(); j++)
         {
            int x1 = koordinate.get(j)[0];
            int y1 = koordinate.get(j)[1];
            double razdalja = Math.sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));
            boolean check = false;

            for(int l = 0; l < razdalje.size(); l++)
            {
               if(razdalje.get(l)[0] == razdalja)
               {
                  razdalje.get(l)[1]++;
                  check = true;
                  break;
               }   
            }   

            if(!check)
            {
               double[] novo = {razdalja,1};
               razdalje.add(novo);
            }   
         }

         koordinate.add(read);   
      }   

      double pari = 0;

      for(int i = 0; i < razdalje.size(); i++)
      {
         double x = razdalje.get(i)[1];
         pari += (x * (x - 1))/2;
      }   

      System.out.println((int)(pari));
   }
}


Vrni se na “1. Kolo”

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost