Rezultati

Up. imeNalogaJezikRezultatČas oddaje
fedja-2017 Črte C++ 0/100Prekoračen čas (TLE) 20. apr '17 @ 19:06

Test Točke Porabljen spomin Porabljen čas Status
#1 10/10 3,063 MiB 0,004 s OK
#2 10/10 3,230 MiB 0,010 s OK
#3 10/10 3,293 MiB 0,010 s OK
#4 10/10 25,809 MiB 1,071 s OK
#5 0/10 151,707 MiB 10,782 s Prekoračen čas
#6 0/10 3,508 MiB 0,667 s Napačen odgovor
Tvoj izhod:
​-252017864
<<<EOF>>>
Pravilen izhod:
​2591567982003000
<<<EOF>>>
#7 0/10 3,516 MiB 3,018 s Napačen odgovor
Tvoj izhod:
​-1418685010
<<<EOF>>>
Pravilen izhod:
​20382496101806
<<<EOF>>>
#8 0/10 3,633 MiB 4,395 s Napačen odgovor
Tvoj izhod:
​650584417
<<<EOF>>>
Pravilen izhod:
​1441612112225
<<<EOF>>>
#9 0/10 4,113 MiB 10,649 s Prekoračen čas
#10 0/10 162,605 MiB 10,579 s Prekoračen čas

Ocenjevani program (crte.cpp):
#include<stdio.h>
#include<stdlib.h>
#include<iostream>

#include <map>
using namespace std;


int main()
{
    short n,x,y;
    int rezultat = 0;
    cin >> n;
    short** tabela = (short**) malloc(n*sizeof(short*));
    map<int,int> razdalje;
    for (int i = 0; i<n; i++)
    {
        cin >> x >> y;
        tabela[i] = (short*) malloc(2*sizeof(short));
        tabela[i][0] = (short)x;
        tabela[i][1] = (short)y;
        
        for (int j = 0; j < i; j++)
        {
            int xcomp = tabela[j][0]-tabela[i][0];
            int ycomp = tabela[j][1]-tabela[i][1];
            int razdalja = (xcomp *xcomp + ycomp * ycomp) ;
            auto it = razdalje.find(razdalja);
            if (it != razdalje.end()){
//                cout<<it->second<<endl;
                (it->second)++;
//                cout<<it->second<<endl<<endl;
            }
            else
                razdalje.emplace(razdalja,1);
        }
    }
    
    auto it = razdalje.begin();
    while (it != razdalje.end())
    {
//         cout<<(it->second)<<"\n";
        rezultat = rezultat + (it->second)*((it->second)-1)/2;
        it++;
    }
    
    cout<<rezultat<<endl;
}