Cod sursa(job #1019009)

Utilizator Athena99Anghel Anca Athena99 Data 30 octombrie 2013 13:11:55
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

typedef long long i64;
const int nmax= 1000;

i64 x[nmax+1], y[nmax+1];
float v[nmax*(nmax-1)/2+1];

int main(  ) {
    int n;
    fin>>n;
    for ( int i= 1; i<=n; ++i ) {
        fin>>x[i]>>y[i];
    }

    int k= 0;
    for ( int i= 1; i<=n-1; ++i ) {
        for ( int j= i+1; j<=n; ++j ) {
            if ( y[i]==y[j] ) {
                v[k]= 84574;
            } else {
                v[k]= (float)(x[i]-x[j])/(float)(y[i]-y[j]);
            }
            ++k;
        }
    }
    sort(v, v+k);
    
    int sol= 0, aux= 1;
    for ( int i= 0; i<k; ++i ) {
        if ( v[i]==v[i-1] ) {
            ++aux;
        } else {
            sol+= aux*(aux-1)/2;
            aux= 1;
        }
    }
    sol+= aux*(aux-1)/2;
    fout<<sol<<"\n";

    return 0;
}