Cod sursa(job #1369036)

Utilizator diana97Diana Ghinea diana97 Data 2 martie 2015 21:16:28
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream f ("trapez.in");
ofstream g ("trapez.out");

struct Punct {
    int x, y;
};

const int NMAX = 1000 + 1;

int n;
Punct p[NMAX];
vector <double> v;

void citeste() {
    f >> n;
    for (int i = 1; i <= n; i++) f >> p[i].x >> p[i].y;
}

void rezolva() {
    double panta;
    for (int i = 2; i <= n; i++)
        for (int j = 1; j < i; j++) {
            panta = (p[i].y - p[j].y) * 1.0 / (p[i].x - p[j].x);
            v.push_back(panta);
        }

    sort(v.begin(), v.end());

    int nr = 1, sol = 0, l = v.size();

    for (int i = 1; i < l; i++) {
        if (v[i] == v[i - 1]) {nr++; continue;}
        else {
            sol = sol + nr * (nr - 1) / 2;
            nr = 1;
        }
    }
    sol = sol + nr * (nr - 1) / 2;
    g << sol;
}

int main() {
    citeste();
    rezolva();
}