제출 #951227

#제출 시각아이디문제언어결과실행 시간메모리
951227PM1Bitwise (BOI06_bitwise)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
#define ll long long int
const ll mxn=105;
ll n,p,cnt[mxn],ans=0;
vector<pair<ll,ll>>v[mxn];
int main(){
	cin>>n>>p;
	for(ll i=1;i<=p;i++)
		cin>>cnt[i];
	for(ll i=1;i<=p;i++){
		while(cnt[i]--){
			ll a,b;
			cin>>a>>b;
			v[i].push_back({a,b});
		}
	}
	for(ll k=31;k>=0;k--){
		
		bool t=1;
		for(ll i=1;i<=p;i++){
			ll g=0,gg=0;
			for(auto j:v[i]){
				//cout<<j.fr<<" "<<j.sc<<'\n';
				if(j.fr>=(1<<k) && j.sc>=(1<<k))g++;
				else if(j.sc>=(1<<k))gg++;
			}
			if(g+gg==0){
				t=0;
				break;
			}
		}
		if(!t)
			continue;
		else{
			ans+=(1<<k);
			for(ll i=1;i<=p;i++){
				ll g=0,gg=0;
				for(auto j:v[i]){
					if(j.fr>=(1<<k) && j.sc>=(1<<k))g++;
					else if(j.sc>=(1<<k))gg++;
				}
				if(g){
					for(ll j=0;j<v[i].size();j++){
						auto y=v[i][j];
						if(y.fr>=(1<<k) && y.sc>=(1<<k)){
							v[i][j].fr-=(1<<k);
							v[i][j].sc-=(1<<k);
						}
					}
				}
				else{
					for(ll j=0;j<v[i].size();j++){
						auto y=v[i][j];
						if(y.fr<(1<<k) && y.sc>=(1<<k)){
							v[i][j].fr-=(1<<k);
							v[i][j].sc-=(1<<k);
							break;
						}
					}
				}
			}
		}
	}
	cout<<ans;
	return 0;
}

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

bitwise.cpp: In function 'int main()':
bitwise.cpp:46:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |      for(ll j=0;j<v[i].size();j++){
      |                 ~^~~~~~~~~~~~
bitwise.cpp:55:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |      for(ll j=0;j<v[i].size();j++){
      |                 ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...