Cod sursa(job #380156)

Utilizator milijrCristian Militaru milijr Data 4 ianuarie 2010 22:08:09
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.66 kb
#include<fstream>
using namespace std;
int modul(int b);
int main()
{
	int a[1000][2],n,i,j,m,l,nr,k[10000][2],c,ok,aa;
	ifstream fin("trapez.in");
	ofstream fout("trapez.out");
	fin>>n;
	for(i=0;i<n;i++)
		fin>>a[i][1]>>a[i][2];
	nr=0;
	k[0][1]=k[0][2]=k[1][1]=k[1][2]=k[2][1]=k[2][2]=k[3][1]=k[3][2]=-1;
	c=0;
	for(i=0;i<n;i++)
		for(j=i+1;j<n;)
			for(m=j+1;m<n;m++)
				for(l=m+1;l<n;l++)
				{
					ok=1;
					for(aa=0;aa<c;aa++)
						if(a[i][1]==k[aa][1])
							if(a[i][2]==k[aa][2])
								if(a[j][1]==k[aa+1][1])
									if(a[j][2]==k[aa+1][1])
										if(a[m][1]==k[aa+2][1])
											if(a[m][2]==k[aa+2][2])
												if(a[l][1]==k[aa+3][1])
													if(a[l][2]==k[aa+3][2])
														ok=0;
					if(ok==1)
					{
						if(modul(a[i][1]-a[j][1])==modul(a[m][1]-a[l][1]) || modul(a[i][2]-a[j][2])==modul(a[m][2]-a[l][2]))
						{
							nr++;
							k[c][1]=a[i][1];
							k[c][2]=a[i][2];
							c++;
							k[c][1]=a[j][1];
							k[c][2]=a[j][2];
							c++;
							k[c][1]=a[m][1];
							k[c][2]=a[m][2];
							c++;
							k[c][1]=a[l][1];
							k[c][2]=a[l][2];
							c++;
						}
						else
							if(modul(a[m][1]-a[j][1])==modul(a[i][1]-a[l][1]) || modul(a[m][2]-a[j][2])==modul(a[i][2]-a[l][2]))
							{
								nr++;
								k[c][1]=a[i][1];
								k[c][2]=a[i][2];
								c++;
								k[c][1]=a[j][1];
								k[c][2]=a[j][2];
								c++;
								k[c][1]=a[m][1];
								k[c][2]=a[m][2];
								c++;
								k[c][1]=a[l][1];
								k[c][2]=a[l][2];
								c++;
							}
					}
				}
	fout<<nr;
	return 0;
}
int modul(int b)
{
	if(b>0)
		return b;
	else
		return -b;
}