제출 #162232

#제출 시각아이디문제언어결과실행 시간메모리
162232mosiashvililukaBank (IZhO14_bank)C++14
52 / 100
1067 ms5468 KiB
#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f[1009],g[1009],dp[22][(1<<21)],jm[(1<<21)];
vector <int> v[22];
int main(){
	ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>a>>b;
	for(c=1; c<=a; c++) cin>>f[c];
	for(c=1; c<=b; c++) cin>>g[c];
	for(d=1; d<=(1<<b)-1; d++){
		for(c=1; c<=b; c++){
			if(((1<<(c-1))&d)!=0) jm[d]+=g[c];
		}
	}
	for(c=1; c<=a; c++){
		for(d=1; d<=(1<<b)-1; d++){
			if(jm[d]==f[c]) v[c].push_back(d);
		}
	}
	dp[0][0]=1;
	for(c=1; c<=a; c++){
		for(d=1; d<=(1<<b)-1; d++){
			for(e=0; e<v[c].size(); e++){
				if((v[c][e]&d)==v[c][e]&&dp[c-1][d-v[c][e]]==1){
					dp[c][d]=1;
					break;
				}
			}
		}
	}
	for(d=1; d<=(1<<b)-1; d++){
		if(dp[a][d]==1){
			cout<<"YES";
			return 0;
		}
	}
	cout<<"NO";
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

bank.cpp: In function 'int main()':
bank.cpp:23:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(e=0; e<v[c].size(); e++){
             ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...