Cod sursa(job #1281540)

Utilizator gbibBacotiu Gabi gbib Data 3 decembrie 2014 12:06:32
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("trapez.in");
ofstream out("trapez.out");
float p[500005];
struct poz{int x,y;}a[1005];
int main()
{int n,i,j,c=1,p1=-1,p2=-1,cont=0,s=0;
in>>n;
for(i=1;i<=n;i++)
    in>>a[i].x>>a[i].y;
for(i=1;i<=n;i++)
{
    for(j=i+1;j<=n;j++)
    {
        p[c]=0;
        if(a[i].y==a[j].y) p1++;
        else
        if(a[i].x==a[j].x) p2++;
        else
        p[c]=float(a[j].y-a[i].y)/(a[j].x-a[i].x);
        c++;
    }
}
sort(p+1,p+n+1);
for(i=1;i<=n;i++)
{
    if(p[i]==p[i+1]&&p[i])
        s++;
    else
    if(s)
    {
        cont+=(s+1);
        s=0;
    }
}
out<<cont+(p1+1)*p1/2+(p2+1)*p2/2<<'\n';
    return 0;
}