Cod sursa(job #933566)

Utilizator Master011Dragos Martac Master011 Data 30 martie 2013 09:59:57
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>
#include<cstring>
using namespace std;
FILE *in,*out;

const int N = 1010;
int n,val[N*100],v[N],Sl=0;

int main(){
    in=fopen("jocul.in","r");
    out=fopen("jocul.out","w");
    val[0]=1;
    fscanf(in,"%d",&n);
    int k=0;
    for(register int i = 1; i<=n ;i++){
        fscanf(in,"%d",&v[i]);
        Sl+=v[i];
        if(v[i]>k)  k=v[i];
    }
    int lim=Sl/2;
    for(register int i =1; i<=n ;++i){
        for(register int j = lim; j>=0; --j){
            if(val[j]){
                val[j+v[i]]=1;
                if(j+v[i]>k&&j+v[i]<=lim) k=j+v[i];
            }
        }
    }

    fprintf(out,"%d %d",k,Sl-k);
    fclose(in);
    fclose(out);
    return 0;
}