Cod sursa(job #578949)

Utilizator PatrikStepan Patrik Patrik Data 11 aprilie 2011 19:01:31
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
	#include<stdio.h>
	FILE *f , *g ;
	int n  , m , st[17] , k , si , s  ;
	long a[17][17] , smax = -1000001 ;
	
	void citire();
	void flip(int k );
	void tipar();
	
	int main()
	{
		citire();
		flip(1);
		tipar();
		return 0;
	}
	
	void citire()
	{
		f=fopen("flip.in" , "r" );
		fscanf(f ,"%d%d" , &n , &m );
		for ( int i  =1 ; i<= n ; ++i )
			for ( int j  =1 ; j<= m ; ++j )
				fscanf(f , "%ld" , &a[i][j] );
			fclose(f);
	}
	
	void flip(int k )
	{
		for ( int q = 0 ; q<= 1 ; ++q )
		{
			st[k]  = q;
			if(k == m )
			{
				s = 0;
				for ( int i = 1 ; i <= n ; ++i)
				{
					si = 0;
					for( int j = 1 ; j<=  m; ++j )
						if(!st[j])
							si+=a[i][j];
						else
							si+=-a[i][j];
					if(-si > si )
						si = -si ;
					s+= si ;
				}
				if(s > smax )
					smax = s ;
			}
			else
					flip(k+1);
		}
	}
	
	void tipar()
	{
		g=fopen("flip.out" , "w" );
		fprintf(g ,"%ld" , smax );
		fclose(g);
	}