# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
715483 | 2023-03-27T04:25:31 Z | vjudge1 | Cluedo (IOI10_cluedo) | C++14 | 0 ms | 0 KB |
#include<bits/stdc++.h> using namespace std; int md(int a[],int n){ int sum=0; for(int i=0;i<n;i++){ sum+=a[i]; } int mid=sum/2+1; bool cur[mid],pre[mid]; for(int i=0;i<mid;i++){ cur[i]=pre[i]=false; } pre[0]=true; for(int i=0;i<mid;i++){ for(int j=0;j+a[i]<mid;j++){ if(pre[i]){ cur[j+a[i]]=true; } } } for(int i=0;i<mid;i++){ if(cur[i]){ pre[i]=true; } else pre[i]=false; cur[i]=false; } for(int i=mid-1;i>=0;i--){ if(pre[i]){ return sum-2*i; } } return 0; } Solve(){ ios_base::sync_with_stdio(0),cin.tie(0); int n; cin>>n; while(n--){ int m; cin>>m; int a[m]; for(int i=0;i<m;i++){ cin>>a[i]; } cout<<md(a,m)<<"\n"; } }