Pagini recente » Cod sursa (job #581832) | Cod sursa (job #2739002) | Cod sursa (job #639572) | Cod sursa (job #656996) | Cod sursa (job #2313955)
#include <cstdio>
#include <map>
#include <cmath>
using namespace std;
#define M 10000
map <pair <int, int>, bool> c;
int main() {
FILE *in = fopen("patrate3.in", "r");
FILE *out = fopen("patrate3.out", "w");
int n, i, j;
//int x, y;
fscanf(in, "%d", &n);
pair <int, int> v[n];
double x, y;
for(i = 0; i < n; i ++) {
fscanf(in, "%lf %lf", &x, &y);
v[i] = {round(x * M * 2), round(y * M * 2)};
/*fscanf(in, "%d.%d", &x, &y);
v[i].first = 2 * (x * M + y);
fscanf(in, "%d.%d", &x, &y);
v[i].second = 2 * (x * M + y);*/
c[v[i]] = true;
}
pair <int, int> m, c1, c2;
int ct = 0;
for(i = 0; i < n; i ++) {
for(j = i + 1; j < n; j ++) {
m.first = (v[i].first + v[j].first) / 2;
m.second = (v[i].second + v[j].second) / 2;
c1.first = m.first + (v[i].second - v[j].second) / 2;
c1.second = m.second - (v[i].first - v[j].first) / 2;
if(c.find(c1) != c.end()) {
c2.first = m.first - (v[i].second - v[j].second) / 2;
c2.second = m.second + (v[i].first - v[j].first) / 2;
if(c.find(c2) != c.end()) {
ct ++;
}
}
}
}
ct /= 2;
fprintf(out, "%d", ct);
return 0;
}