Cod sursa(job #1802830)

Utilizator d0rina2011Craciun Dorina d0rina2011 Data 10 noiembrie 2016 17:50:28
Problema Trapez Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <limits.h>
#include<bits/stdc++.h>

using namespace std;

ifstream fin("trapez.in");
ofstream fout("trapez.out");

struct punct {long long x, y;
}puncte[1001];


int main()
{
    int n, i, j, nr_trapeze = 0, nr_pante = 0;
    float m;
    fin>>n;
    for(i = 1; i <= n; ++i)
        fin>>puncte[i].x>>puncte[i].y;
    vector <float> pante;
    for(i = 1; i <= n - 1; ++i)
        for(j = i + 1; j <= n; ++j){
            if(puncte[i].x != puncte[j].x){
                m = (float)((puncte[j].y - puncte[i].y)) / (puncte[j].x - puncte[i].x);
                pante.push_back(m);
            }
            else pante.push_back(9999999);
    }
    nr_pante = pante.size();
    for(i = 1; i <= nr_pante; ++i)
        cout<<pante[i]<<" ";
    sort(pante.begin(), pante.end());
    for(i = 0; i <= nr_pante - 1; ++i){
        for(j = i; pante[j] == pante[j + 1] && j <= nr_pante; ++j);
            //if(pante[i] == pante[j])
               // if(pante[i] != 9999999 && pante[j] != 9999999)
            nr_trapeze += (j - i) * (j - i + 1) / 2;
    }
    fout<<nr_trapeze;
    return 0;
}