제출 #951225

#제출 시각아이디문제언어결과실행 시간메모리
951225PM1Bitwise (BOI06_bitwise)C++17
35 / 100
1 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
const int mxn=105;
int n,p,cnt[mxn],ans=0;
vector<pair<int,int>>v[mxn];
int main(){
	cin>>n>>p;
	for(int i=1;i<=p;i++)
		cin>>cnt[i];
	for(int i=1;i<=p;i++){
		while(cnt[i]--){
			int a,b;
			cin>>a>>b;
			v[i].push_back({a,b});
		}
	}
	for(int k=30;k>=0;k--){
		
		bool t=1;
		for(int i=1;i<=p;i++){
			int 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(int i=1;i<=p;i++){
				int 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(int 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(int 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:45:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |      for(int j=0;j<v[i].size();j++){
      |                  ~^~~~~~~~~~~~
bitwise.cpp:54:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |      for(int j=0;j<v[i].size();j++){
      |                  ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...