Cod sursa(job #1442280)

Utilizator popcristianvladVlad Pop popcristianvlad Data 24 mai 2015 22:03:20
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <stdio.h>
#include <stdlib.h>

#define MAX 20

int s[MAX],suma_maxima=0,a[MAX][MAX];

void calculeaza(int n, int m){
    int plm=0,sum,i,j;
    for(i=0;i<n;i++){
        sum=0;
        for(j=0;j<m;j++)
            sum+=(s[j]) *(a[i][j]);
        if(sum<0) plm-=sum;
        else plm+=sum;
    }
    if (plm>suma_maxima) suma_maxima=plm;
}

void back(int k,int n, int m){
    int i;
    if(k>m) calculeaza(n,m);
    else
        for(i=-1;i<2;i++)
            if(i!=0){
                s[k]=i;
                back(k+1,n,m);
            }
}

void main(){
    FILE *f=fopen("flip.txt","r");
    FILE *g=fopen("flipo.txt","w");
    if(f==NULL){
        perror("Eroare alocare");
        exit(-1);
    }
    int n,m,i,j;
    fscanf(f,"%d %d", &n, &m);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            fscanf(f,"%d",&a[i][j]);
    back(1,n,m);
    fprintf(g,"%d",suma_maxima);
    fclose(g);
    free(g);
    fclose(f);
    free(f);
}