Cod sursa(job #717473)

Utilizator ovidiustiruOvidiu Ioan Stiru ovidiustiru Data 19 martie 2012 22:25:16
Problema Trapez Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <algorithm>
#include <vector>

using namespace std;

vector <long long> p1;
vector <long long> p2;
long long x[1001],y[1001],n,nr=0,k=0,ct=0,ct1=0,ct2=0;

int main(){
	
	freopen("trapez.in","r",stdin);
	scanf("%lld",&n);
	
	for (int i=0;i<n;i++){
		scanf("%lld %lld",&x[i],&y[i]);
	}

	fclose(stdin);

	for(int i=0;i<n-1;i++){
		for(int j=i+1;j<n;j++){
			if((x[i]==x[j])||(y[i]==y[j])){
				if(x[i]==x[j])ct1++;
				if(y[i]==y[j])ct2++;
			}else{
				p1.push_back(y[i]-y[j]);
				p2.push_back(x[i]-x[j]);
			}
		}
	}
	if (ct1!=0)nr+=ct1-1;
	if (ct2!=0)nr+=ct2-1;

	int l=p1.size();


	for (int i=0;i<l-1;i++){
		for(int j=i+1;j<l;j++){
			if((p1[i]*p2[j])==(p2[i]*p1[j]))nr++;
		}
	}

	freopen("trapez.out","w",stdout);
	printf("%lld",nr);
	fclose(stdout);
	
	return 0;
}