Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Basic info
- Problem : LOJ1235
- Date : 31-12-18
- Author : Shesher
- */
- #include<bits/stdc++.h>
- using namespace std;
- ///Template
- #define in1() freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\input.txt", "r", stdin);
- #define out1() freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\output.txt", "w", stdout);
- //Data types
- #define lo long
- #define ll long long
- #define llu unsigned long long
- //loop
- #define f1(i,x,y) for(int i=x;i<=y;i++)
- //Constants
- #define MAX 100007
- #define MOD 10000007
- #define PI acos(-1.0)
- //STL
- #define vout(v) for(int i=0;i<v.size();i++){cout<<v[i]; if(i==v.size()-1) cout<<endl; else cout<<" ";}
- //Scan
- #define sc(x) scanf("%d", &x)
- #define scl(x) scanf("%lld", &x)
- //Print
- #define pa(a,i,n) for(int i=0;i<n;i++){ cout<<a[i]; if(i==n-1) cout<<endl; else cout<<" ";}
- vector<ll> v1, v2;
- ll sum;
- bool f=0;
- ll k;
- void comb(int a[],int pos, int n)
- {
- if(f) return;
- if(pos==n){
- if(sum==k){
- f=1;
- return;
- }
- v1.push_back(sum);
- v2.push_back(sum);
- return;
- }
- sum+=a[pos];
- comb(a,pos+1,n);
- sum-=a[pos];
- comb(a,pos+1,n);
- }
- int main()
- {
- // freopen("in.txt", "r", stdin);
- // freopen("out.txt", "w", stdout);
- int t;
- cin>>t;
- f1(ti,1,t){
- int n;
- cin>>n>>k;
- int a[n+2];
- ll sum2=0;
- for(int i=0;i<n;i++){
- cin>>a[i];
- sum2+=a[i];
- }
- if((sum2*2)<k){
- printf("Case %d: No\n", ti);
- continue;
- }
- v1.clear();
- v2.clear();
- sum=0;
- f=0;
- comb(a,0,n);
- if(f){
- printf("Case %d: Yes\n", ti);
- continue;
- }
- // vout(v1);
- // vout(v2);
- sort(v1.begin(),v1.end());
- bool f2=0;
- for(int i=0;i<v2.size();i++){
- ll temp=k-v2[i];
- int l=0, r=v1.size()-1, mid;
- while(l<=r){
- mid=(l+r)/2;
- if(v1[mid]==temp){
- f2=1;
- break;
- }
- else if(v1[mid]>temp) r=mid-1;
- else l=mid+1;
- }
- if(f2) break;
- }
- if(f2){
- printf("Case %d: Yes\n", ti);
- }
- else{
- printf("Case %d: No\n", ti);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement