1552G - A Serious Referee - CodeForces Solution


bitmasks brute force dfs and similar sortings *3000

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,k,d[14];
ll MSK,msk[14],s[14][44],all;
vector<int>vec;
void dfs(int p,ll m){
	if(p==k){
		int tmp=__builtin_popcountll(m);
		if((1ll<<tmp)-1!=m)puts("REJECTED"),exit(0);
		return;
	}
	int v=__builtin_popcountll(m&msk[p]);m^=(m&msk[p]);
	for(int i=0;i<=d[p];i++)vec.push_back(i),dfs(p+1,m|s[p][v+i]),vec.pop_back();
}
int main(){
	scanf("%d%d",&n,&k);
	if(n==1)return puts("ACCEPTED"),0;
	for(int i=0;i<k;i++){
		int m;scanf("%d",&m);
		for(int j=0,x;j<m;j++){
			scanf("%d",&x),x--;
			msk[i]|=1ll<<x,s[i][j+1]=msk[i];
		}
		d[i]=__builtin_popcountll(msk[i]^(MSK&msk[i])),MSK|=msk[i];
	}
	if(MSK!=(1ll<<n)-1)return puts("REJECTED"),0;
	dfs(0,0),puts("ACCEPTED");
}


Comments

Submit
0 Comments
More Questions

1051. Height Checker
695. Max Area of Island
402. Remove K Digits
97. Interleaving String
543. Diameter of Binary Tree
124. Binary Tree Maximum Path Sum
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
501A - Contest
160A- Twins
752. Open the Lock
1535A - Fair Playoff
1538F - Interesting Function
1920. Build Array from Permutation
494. Target Sum
797. All Paths From Source to Target
1547B - Alphabetical Strings
1550A - Find The Array
118B - Present from Lena
27A - Next Test
785. Is Graph Bipartite
90. Subsets II
1560A - Dislike of Threes
36. Valid Sudoku
557. Reverse Words in a String III
566. Reshape the Matrix
167. Two Sum II - Input array is sorted
387. First Unique Character in a String
383. Ransom Note
242. Valid Anagram
141. Linked List Cycle