Cod sursa(job #2013313)

Utilizator mariusn01Marius Nicoli mariusn01 Data 21 august 2017 02:16:48
Problema Patrate 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <cmath>
#include <algorithm>
#include <set>
#define DIM 1010
using namespace std;

set<pair<int, int> > S;

pair<int, int> v[DIM];
int sol, n, midx, midy, dx, dy, i, j;
double x, y;
int main () {
    ifstream fin ("patrate3.in");
    ofstream fout("patrate3.out");

    fin>>n;
    for (i=1;i<=n;i++) {
        fin>>x>>y;
        v[i].first  = 2*round(x*10000);
        v[i].second = 2*round(y*10000);
        S.insert(make_pair(v[i].first, v[i].second));
    }

    sort(v+1, v+n+1);

    for (i=1;i<n;i++)
        for (j=i+1;j<=n;j++) {
            midx = (v[i].first + v[j].first)/2;
            midy = (v[i].second + v[j].second)/2;

            dx = midx - v[i].first;
            dy = midy - v[i].second;

            if ((S.find( make_pair(midx-dy, midy+dx) ) != S.end()) && (S.find(make_pair(midx+dy, midy-dx)) != S.end())) {
                sol++;
            }
        }

    fout<<sol/2;

    return 0;
}