AlbertMourato

Untitled

Dec 7th, 2015
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <iostream>
  3. using namespace std;
  4. int matriz[1003][481];
  5. int comida[1003];
  6. int main(){
  7.     //freopen("in.txt", "r", stdin);
  8.     //freopen("out.txt", "w", stdout);
  9.     int t,n,resp;
  10.     cin>>t;
  11.     while(t>0){
  12.         memset(matriz, 0, sizeof(matriz));
  13.         cin>>n;
  14.         if(n==0){
  15.             cout<<0<<endl;
  16.         }else{
  17.             for(int i = 0;i<n;i++){
  18.                 cin>>comida[i];
  19.             }
  20.             sort(comida, comida+n);
  21.             matriz[0][comida[0]]=1;
  22.             for(int i = 1; i<n;i++){
  23.                 for(int j=comida[0];j<=480; j++){
  24.                     if(comida[i]>j){
  25.                         matriz[i][j] = matriz[i-1][j];
  26.                     }else if(comida[i]==j){
  27.                         matriz[i][j]=1;
  28.                     }
  29.                     else if(matriz[i-1][j]!=1){
  30.                         matriz[i][j] = matriz[i-1][j-comida[i]];
  31.                     }else{
  32.                         matriz[i][j] = matriz[i-1][j];
  33.                     }
  34.                 }
  35.             }
  36.             for(int i = 480;i>=0;i--){
  37.                 if(matriz[n-1][i]==1){
  38.                     resp=i;
  39.                     break;
  40.                 }
  41.             }
  42.             cout<<resp<<"\n";
  43.         }
  44.         t--;
  45.     }
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment