Submission #1098209

#TimeUsernameProblemLanguageResultExecution timeMemory
1098209vjudge1Bank (IZhO14_bank)C++17
0 / 100
1025 ms144872 KiB
#include<bits/stdc++.h>
#define pb push_back
#define int long long
#define S second
#define F first
#define ahah ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;

const int N=1e6+7;
const int MOD=1e9+7;

int a[N],b[N];
bool used[N];

signed main() {
	ahah
	int n,m;
	cin >> n >> m;
	for(int i = 1 ; i <= n ; i++){
		cin >> a[i];
	}
	for(int i = 1 ; i <= m ; i++){
		cin >> b[i];
	}
	sort(a+1,a+1+n);
	sort(b+1,b+1+m);
	map<int,int>number;
	map<int,map<int,vector<int> > >mp;
	for(int i = 0 ; i < (1 << m) ; i++){
		vector<int>vc;
		for(int j = 0 ; j < m ; j++){
			if(i&(1 << j)){
				vc.pb(j+1);
			}
		}
		int cnt=0;
		for(int j = 0 ; j < vc.size() ; j++){
			cnt+=b[vc[j]];
		}
		number[cnt]++;
		for(int j = 0 ; j < vc.size() ; j++){
			mp[cnt][number[cnt]].pb(b[vc[j]]);
		}
	}
	for(int uk=1 ; uk <= n ; uk++){
		int to=a[uk];
		bool complete=false;
		for(int i = 1 ; i <= number[to] ; i++){
			bool check=false;
			for(int j = 0 ; j < mp[to][i].size() ; j++ ){
				int x=mp[to][i][j];
				if(used[x]){
					check=true;
					break;
				}
			}
			if(check){
				continue;
			}else{
				for(int j = 0 ; j < mp[to][i].size() ; j++){
					int x=mp[to][i][j];
					used[x]=true;
				}
				complete=true;
				break;
			}
		}
		if(!complete){
			cout << "NO";
			return 0;
		}
	}
	cout << "YES";
}

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:37:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |   for(int j = 0 ; j < vc.size() ; j++){
      |                   ~~^~~~~~~~~~~
bank.cpp:41:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |   for(int j = 0 ; j < vc.size() ; j++){
      |                   ~~^~~~~~~~~~~
bank.cpp:50:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |    for(int j = 0 ; j < mp[to][i].size() ; j++ ){
      |                    ~~^~~~~~~~~~~~~~~~~~
bank.cpp:60:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |     for(int j = 0 ; j < mp[to][i].size() ; j++){
      |                     ~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...