Cod sursa(job #1666322)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 27 martie 2016 21:41:35
Problema Zebughil Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>
int t,n,m,i,j,v[20],x[200100];
long long s;
FILE *f,*g;
int main(){
    f=fopen("zebughil.in","r");
    g=fopen("zebughil.out","w");
    t = 3;
    while( t-- ){
        fscanf(f,"%d%d",&n,&m);
        for(i=0;i<n;i++){
            fscanf(f,"%d",&v[i]);
        }
        for(i=1; i < ( 1 << n);i++){
            s = 0;
            for(j=0;j<n;j++){
                if( ( i >> j ) & 1 )
                    s += v[j];
            }
            if( s <= m )
                x[i] = 1;
            else{
                x[i] = n + 1;
                for(j = ( i - 1 ) & i;j>0; j = ( j - 1 ) & i ){
                    if( x[i] > x[j] + x[ i ^ j ] )
                        x[i] = x[j] + x[ i ^ j ];
                }
            }
        }
        fprintf(g,"%d\n",x[ ( 1 << n ) - 1 ]);
    }



    fclose(f);
    fclose(g);
    return 0;
}