Cod sursa(job #1078698)

Utilizator TibixbAndrei Tiberiu Tibixb Data 12 ianuarie 2014 11:21:56
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<fstream>
#include<cstdio>
using namespace std;
int aux, n, k, op, i, nr, st[515], dr[515], usor[1030], greu[1030], f[1030], sol, nrsol;
FILE*fin=fopen("balanta.in","r");
ofstream fout("balanta.out");
int main(){
	fscanf(fin,"%d%d", &n, &k);
	for(aux=1; aux<=k; aux++){

		for (i=1;i<=n;i++)
			f[i] = 0;

		
		fscanf(fin,"%d", &nr);
		for(i=1; i<=nr; i++){
			fscanf(fin,"%d", &st[i]);
			f[st[i]] = 1;
		}
		for(i=1; i<=nr; i++){
			fscanf(fin,"%d", &dr[i]);
			f[dr[i]] = 1;
		}
		fscanf(fin,"%d", &op);
		
		
		if(op==0){
			for(i=1; i<=nr; i++){
				usor[st[i]]=1; usor[dr[i]]=1;
				greu[st[i]]=1; greu[dr[i]]=1;
			}
		}
		else{
			if(op==1){
				for(i=1; i<=nr; i++){
					usor[st[i]]=1; greu[dr[i]]=1;
				}
			}
			else{
				for(i=1; i<=nr; i++){
					usor[dr[i]]=1; greu[st[i]]=1;
				}
			}
			for (i=1;i<=n;i++)
				if (f[i] == 0) {
					usor[i] = 1;
					greu[i] = 1;
				}
		}
	}
	for(i=1; i<=n; i++){
		if(usor[i]==0){
			sol=i;
			nrsol++;
		}
		if(greu[i]==0){
			sol=i;
			nrsol++;
		}
		if(nrsol>1){
			sol=0;
			break;
		}
	}
	fout<<sol;
	return 0;
}