Rezultati

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

Test Točke Porabljen spomin Porabljen čas Status
#1 10/10 3,188 MiB 0,004 s OK
#2 10/10 3,320 MiB 0,010 s OK
#3 10/10 3,398 MiB 0,010 s OK
#4 10/10 22,117 MiB 0,457 s OK
#5 0/10 327,680 MiB 10,874 s Prekoračen čas
#6 0/10 3,297 MiB 1,331 s Napačen odgovor
Tvoj izhod:
​-252017864<<<EOF>>>
Pravilen izhod:
​2591567982003000
<<<EOF>>>
#7 0/10 3,313 MiB 1,629 s Napačen odgovor
Tvoj izhod:
​20056151470<<<EOF>>>
Pravilen izhod:
​20382496101806
<<<EOF>>>
#8 0/10 3,402 MiB 2,086 s Napačen odgovor
Tvoj izhod:
​275528491361<<<EOF>>>
Pravilen izhod:
​1441612112225
<<<EOF>>>
#9 10/10 4,004 MiB 6,770 s OK
#10 0/10 477,422 MiB 10,731 s Prekoračen čas

Ocenjevani program (main.cpp):
#include <iostream>
#include <math.h>
#include <vector>
#include <stdio.h>
#include <string>
#include <algorithm>
#include <unordered_map>
#include <utility>

using namespace std;


int main(){
    int n;
    vector<int> x;
    vector<int> y;
    cin>>n;
    unordered_map<long long int,int> mp;
    for(int i=0;i<n;++i){
        int a;
        int b;
        scanf("%d %d",&a,&b);
        x.push_back(a);
        y.push_back(b);
        for(int j=0;j<i;++j){
            long long int r=(x[j]-a)*(x[j]-a)+(y[j]-b)*(y[j]-b);
            if(mp.find(r)==mp.end()){
                mp.emplace(make_pair(r,1));
            }
            else{mp[r]++;}
        }
    }
    long long int sum=0;
    for(auto it=mp.begin();it!=mp.end();++it){
        if(it->second>1){
            sum+=(it->second)*(it->second-1)/2;
        }
    }
    cout<<sum;
    return 0;
}