Cod sursa(job #1766238)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 27 septembrie 2016 18:55:48
Problema Patrate 3 Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;
typedef double f64;

pair<int, int> p1, p2, pts[1005];

int main(void) {
    ifstream fi("patrate3.in");
    ofstream fo("patrate3.out");
    f64 dx, dy, tx, ty;
    int ant, n;

    ant = 0;

    fi >> n;
    for(int i=0; i<n; ++i) {
        fi >> tx >> ty;
        pts[i].first = int((tx+1e-6) * 10000);
        pts[i].second = int((ty+1e-6) * 10000);
    }

    sort(pts, pts+n);

    for(int i=0; i<n; ++i) {
    for(int j=i+1; j<n; ++j) {
        if(pts[j].first>pts[i].first&&pts[j].second>=pts[i].second) {
            dx=pts[j].first-pts[i].first;
            dy=pts[j].second-pts[i].second;
            p1=pts[i];
            p2=pts[j];
            p1.first-=dy;
            p2.first-=dy;
            p1.second+=dx;
            p2.second+=dx;
            if(binary_search(pts, pts+n, p1) && binary_search(pts, pts+n, p2))
                ++ ant;
        }
    } }

    fo << ant << '\n';
    return 0;
}