Cod sursa(job #29222)

Utilizator xulescuStefu Gabriel xulescu Data 8 martie 2007 19:54:47
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream.h>

int maimari[1024],maimici[1024];
int nmm1=1024,nmm2=1024;
int n,m,k,r;
int cant[2048];

void cauta(int *mul,int q,int *mulfin,int &nr){
	int x=nr,m[1024],c=0,i,j;
	for(i=0;i<q;i++)
		for(j=0;j<x;j++)
		if(mulfin[j]==mul[i]){
			m[c]=mulfin[j];
			c++;
			break;
		}
	for(i=0;i<c;i++) mulfin[i]=m[i];
	nr=c;
}

int main(){
	ifstream f("balanta.in");
	f>>n>>m;
	int mult1[1024],q1,mult2[1024],q2,p,i;
	//initializare
	for(i=0;i<1024;i++){ maimari[i]=i+1; maimici[i]=i+1; }

	for(i=0;i<m;i++){
		f>>k;
		for(int j=0;j<k*2;j++) f>>cant[j];
		f>>r;
		if(r==1) for(p=0;p<k;p++){ mult1[p]=cant[p]; q1=k; mult2[p]=cant[p+k]; q2=k; }
		if(r==2) for(p=0;p<k;p++){ mult1[p]=cant[p+k]; q1=k; mult2[p]=cant[p]; q2=k; }
		if(r==1||r==2){ cauta(mult1,q1,maimari,nmm1); cauta(mult2,q2,maimici,nmm2); }
	}
	f.close();
	ofstream g("balanta.out");
	if(nmm1==1&&nmm2==0) g<<maimari[0];
	else if(nmm2==1&&nmm1==0) g<<maimici[0];
	else g<<0;	

	g.close();
	return 0;
}