Cod sursa(job #617640)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 15 octombrie 2011 09:50:48
Problema Triplete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#include<bitset>
#include<cstring>
using namespace std;
int sol;
short A[66000],B[66000];
unsigned short n,m;
bitset <4100> G[4100],nr;
int main()
{
	int i,j,x,y,lim;
	char s[15];
	ifstream fin("triplete.in");
	fin.getline(s,15);
	j=0;
	lim=strlen(s);
	while(s[j]!=' ')
	{
		n=n*10+(s[j]-'0');
		j++;
	}
	j++;
	while(j<lim)
	{
		m=m*10+(s[j]-'0');
		j++;
	}
	//fin>>n>>m;
	for(i=1;i<=m;i++)
	{
		fin.getline(s,15);
		j=0;
		lim=strlen(s);
		while(s[j]!=' ')
		{
			A[i]=A[i]*10+(s[j]-'0');
			j++;
		}
		j++;
		while(j<lim)
		{
			B[i]=B[i]*10+(s[j]-'0');
			j++;
		}
		//fin>>x>>y;
		if(A[i]<B[i])
			G[A[i]].set(B[i]);
		else
			G[B[i]].set(A[i]);
	}
	for(i=1;i<=m;i++)
	{
		nr=(G[A[i]]&G[B[i]]);
		sol+=nr.count();
	}
	ofstream fout("triplete.out");
	fout<<sol<<"\n";
	fout.close();
	return 0;
}