Cod sursa(job #1608206)

Utilizator icansmileSmileSmile icansmile Data 21 februarie 2016 21:51:34
Problema 2SAT Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 1.06 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_N 100000
#define MAX_M 200000
int N,M;
int perechi[MAX_M][2];
int rezultat[MAX_N];
void citire_date(FILE *fisier)
{
	int i;
	fscanf(fisier,"%d",&N);
	fscanf(fisier,"%d",&M);
	for(i=0;i<M;i++)
		{fscanf(fisier,"%d",&perechi[i][0]);
		 fscanf(fisier,"%d",&perechi[i][1]);}
}
int main()
{
	FILE *fisier1,*fisier2;
	int i;
	fisier1=fopen("2sat.in","r");
	fisier2=fopen("2sat.out","w");
	citire_date(fisier1);
	for(i=0;i<M;i++)
	{
		if(perechi[i][0]<0 && perechi[i][1]<0)
			{rezultat[abs(perechi[i][0])]=1;
			  rezultat[abs(perechi[i][1])]=1;
			}
		else
			if(perechi[i][0]<0 && perechi[i][1]>0)
			{
			  rezultat[abs(perechi[i][0])]=1;
			  rezultat[abs(perechi[i][1])]=0;
			}
		else
			if(perechi[i][0]>0 && perechi[i][1]<0)
			{
			  rezultat[abs(perechi[i][0])]=0;
			  rezultat[abs(perechi[i][1])]=1;
			}
		else
			if(perechi[i][0]>0 && perechi[i][1]>0)
			{
			  rezultat[abs(perechi[i][0])]=0;
			  rezultat[abs(perechi[i][1])]=0;
			}
	}
	for(i=0;i<N;i++)
		fprintf(fisier2,"%d ",rezultat[i]);
	return 0;
}