Submission #65511800


Source Code Expand

#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
typedef long long ll;
const int N=405,mod=998244353;
ll Fact[N];
void pre(){
	Fact[0]=1;
	for(int i=1;i<N;i++)Fact[i]=i*Fact[i-1]%mod;
}
bool subset(vector<int>a,vector<int>b){
	int n=a.size();
	for(int i=0;i<n;i++){
		if(a[i]&&!b[i])return 0;
	}
	return 1;
}
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	pre();
	int T;
	cin>>T;
	while(T--){
		int n;
		cin>>n;
		vector<vector<int>>a(n,vector<int>(n));
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				cin>>a[i][j];
			}
		}
		if(a[0]!=vector<int>(n,1)){
			cout<<"0\n";
			continue;
		}
		map<vector<int>,int>id;
		vector<vector<int>>groups,gval;
		for(int i=0;i<n;i++){
			if(!id.count(a[i])){
				id[a[i]]=groups.size();
				groups.push_back({i});
				gval.push_back(a[i]);
			}else groups[id[a[i]]].push_back(i);
		}
		int m=groups.size();
		vector<pair<int,int>>edges;
		vector<int>order(m);
		iota(order.begin(),order.end(),0);
		sort(order.begin(),order.end(),[&](int a,int b){
			return count(gval[a].begin(),gval[a].end(),1)>count(gval[b].begin(),gval[b].end(),1);
		});
		vector<int>parent(m,-2);
		bool bad=0;
		for(int ii=0;ii<m;ii++){
			int i=order[ii];
			int cnt_i=count(gval[i].begin(),gval[i].end(),1);
			if(ii==0){
				if(cnt_i!=n){
					bad=1;
					break;
				}
				parent[i]=-1;
			}else{
				int best=-1,best_size=N+1;
				for(int jj=0;jj<ii;jj++){
					int j=order[jj];
					int cnt_j=count(gval[j].begin(),gval[j].end(),1);
					if(cnt_j<=cnt_i)continue;
					if(subset(gval[i],gval[j])&&cnt_j<best_size){
						best_size=cnt_j;
						best=j;
					}
				}
				if(best==-1){
					bad=1;
					break;
				}
				parent[i]=best;
			}
		}
		if(bad){
			cout<<"0\n";
			continue;
		}
		long long ans=1;
		for(int i=0;i<m;i++){
			int sz=groups[i].size();
			if(parent[i]==-1)ans=ans*Fact[sz-1]%mod;
			else ans=ans*Fact[sz]%mod;
		}
		cout<<ans<<"\n";
	}
	return 0;
}

Submission Info

Submission Time
Task D - Ancestor Relation
User AbdelmagedNour
Language C++ 20 (gcc 12.2)
Score 0
Code Size 2038 Byte
Status WA
Exec Time 28 ms
Memory 5604 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 700
Status
AC × 1
AC × 59
WA × 35
Set Name Test Cases
Sample 01_sample_01.txt
All 01_sample_01.txt, 02_small_01.txt, 02_small_02.txt, 02_small_03.txt, 03_mid_1_01.txt, 03_mid_1_02.txt, 03_mid_1_03.txt, 03_mid_1_04.txt, 03_mid_1_05.txt, 03_mid_1_06.txt, 03_mid_1_07.txt, 03_mid_1_08.txt, 03_mid_1_09.txt, 03_mid_1_10.txt, 03_mid_1_11.txt, 03_mid_1_12.txt, 03_mid_1_13.txt, 03_mid_1_14.txt, 03_mid_1_15.txt, 04_mid_2_01.txt, 04_mid_2_02.txt, 04_mid_2_03.txt, 04_mid_2_04.txt, 04_mid_2_05.txt, 04_mid_2_06.txt, 04_mid_2_07.txt, 04_mid_2_08.txt, 04_mid_2_09.txt, 04_mid_2_10.txt, 04_mid_2_11.txt, 04_mid_2_12.txt, 04_mid_2_13.txt, 04_mid_2_14.txt, 04_mid_2_15.txt, 05_mid_3_01.txt, 05_mid_3_02.txt, 05_mid_3_03.txt, 05_mid_3_04.txt, 05_mid_3_05.txt, 06_mid_4_01.txt, 06_mid_4_02.txt, 06_mid_4_03.txt, 06_mid_4_04.txt, 06_mid_4_05.txt, 07_mid_5_01.txt, 07_mid_5_02.txt, 07_mid_5_03.txt, 07_mid_5_04.txt, 07_mid_5_05.txt, 08_max_1_01.txt, 08_max_1_02.txt, 08_max_1_03.txt, 08_max_1_04.txt, 08_max_1_05.txt, 08_max_1_06.txt, 08_max_1_07.txt, 08_max_1_08.txt, 08_max_1_09.txt, 08_max_1_10.txt, 08_max_1_11.txt, 08_max_1_12.txt, 08_max_1_13.txt, 08_max_1_14.txt, 08_max_1_15.txt, 09_max_2_01.txt, 09_max_2_02.txt, 09_max_2_03.txt, 09_max_2_04.txt, 09_max_2_05.txt, 09_max_2_06.txt, 09_max_2_07.txt, 09_max_2_08.txt, 09_max_2_09.txt, 09_max_2_10.txt, 09_max_2_11.txt, 09_max_2_12.txt, 09_max_2_13.txt, 09_max_2_14.txt, 09_max_2_15.txt, 10_max_3_01.txt, 10_max_3_02.txt, 10_max_3_03.txt, 10_max_3_04.txt, 10_max_3_05.txt, 11_max_4_01.txt, 11_max_4_02.txt, 11_max_4_03.txt, 11_max_4_04.txt, 11_max_4_05.txt, 12_max_5_01.txt, 12_max_5_02.txt, 12_max_5_03.txt, 12_max_5_04.txt, 12_max_5_05.txt
Case Name Status Exec Time Memory
01_sample_01.txt AC 1 ms 3400 KiB
02_small_01.txt WA 6 ms 3456 KiB
02_small_02.txt WA 6 ms 3332 KiB
02_small_03.txt WA 6 ms 3436 KiB
03_mid_1_01.txt AC 10 ms 3600 KiB
03_mid_1_02.txt AC 10 ms 3548 KiB
03_mid_1_03.txt AC 10 ms 3728 KiB
03_mid_1_04.txt AC 11 ms 3736 KiB
03_mid_1_05.txt AC 10 ms 3660 KiB
03_mid_1_06.txt AC 10 ms 3532 KiB
03_mid_1_07.txt AC 11 ms 3592 KiB
03_mid_1_08.txt AC 10 ms 3668 KiB
03_mid_1_09.txt AC 11 ms 3592 KiB
03_mid_1_10.txt AC 10 ms 3544 KiB
03_mid_1_11.txt AC 10 ms 3604 KiB
03_mid_1_12.txt AC 11 ms 3636 KiB
03_mid_1_13.txt AC 10 ms 3588 KiB
03_mid_1_14.txt AC 11 ms 3460 KiB
03_mid_1_15.txt AC 11 ms 3600 KiB
04_mid_2_01.txt WA 10 ms 3552 KiB
04_mid_2_02.txt WA 10 ms 3596 KiB
04_mid_2_03.txt WA 11 ms 3608 KiB
04_mid_2_04.txt WA 10 ms 3524 KiB
04_mid_2_05.txt WA 10 ms 3592 KiB
04_mid_2_06.txt WA 10 ms 3728 KiB
04_mid_2_07.txt WA 10 ms 3536 KiB
04_mid_2_08.txt WA 11 ms 3728 KiB
04_mid_2_09.txt WA 11 ms 3660 KiB
04_mid_2_10.txt WA 10 ms 3604 KiB
04_mid_2_11.txt WA 10 ms 3524 KiB
04_mid_2_12.txt WA 11 ms 3604 KiB
04_mid_2_13.txt WA 10 ms 3600 KiB
04_mid_2_14.txt WA 10 ms 3468 KiB
04_mid_2_15.txt WA 10 ms 3548 KiB
05_mid_3_01.txt WA 6 ms 3488 KiB
05_mid_3_02.txt AC 6 ms 3560 KiB
05_mid_3_03.txt AC 6 ms 3560 KiB
05_mid_3_04.txt AC 6 ms 3496 KiB
05_mid_3_05.txt AC 6 ms 3500 KiB
06_mid_4_01.txt AC 12 ms 3724 KiB
06_mid_4_02.txt AC 12 ms 3724 KiB
06_mid_4_03.txt AC 12 ms 3584 KiB
06_mid_4_04.txt AC 12 ms 3512 KiB
06_mid_4_05.txt AC 12 ms 3600 KiB
07_mid_5_01.txt AC 7 ms 3644 KiB
07_mid_5_02.txt AC 7 ms 3504 KiB
07_mid_5_03.txt AC 7 ms 3640 KiB
07_mid_5_04.txt AC 7 ms 3556 KiB
07_mid_5_05.txt AC 7 ms 3512 KiB
08_max_1_01.txt AC 14 ms 5068 KiB
08_max_1_02.txt AC 15 ms 4824 KiB
08_max_1_03.txt AC 25 ms 5436 KiB
08_max_1_04.txt AC 16 ms 5148 KiB
08_max_1_05.txt AC 14 ms 4920 KiB
08_max_1_06.txt AC 22 ms 5556 KiB
08_max_1_07.txt AC 15 ms 5128 KiB
08_max_1_08.txt AC 6 ms 4168 KiB
08_max_1_09.txt AC 21 ms 5320 KiB
08_max_1_10.txt AC 14 ms 5200 KiB
08_max_1_11.txt AC 16 ms 4988 KiB
08_max_1_12.txt AC 20 ms 5604 KiB
08_max_1_13.txt AC 15 ms 4960 KiB
08_max_1_14.txt AC 16 ms 4864 KiB
08_max_1_15.txt AC 20 ms 5256 KiB
09_max_2_01.txt WA 14 ms 5040 KiB
09_max_2_02.txt WA 15 ms 4924 KiB
09_max_2_03.txt WA 23 ms 5156 KiB
09_max_2_04.txt WA 16 ms 5176 KiB
09_max_2_05.txt WA 15 ms 5084 KiB
09_max_2_06.txt WA 20 ms 5212 KiB
09_max_2_07.txt WA 16 ms 5284 KiB
09_max_2_08.txt WA 17 ms 5044 KiB
09_max_2_09.txt AC 16 ms 5140 KiB
09_max_2_10.txt WA 15 ms 5136 KiB
09_max_2_11.txt WA 14 ms 5012 KiB
09_max_2_12.txt AC 20 ms 5152 KiB
09_max_2_13.txt WA 15 ms 5104 KiB
09_max_2_14.txt WA 14 ms 4788 KiB
09_max_2_15.txt AC 12 ms 5152 KiB
10_max_3_01.txt AC 7 ms 3840 KiB
10_max_3_02.txt AC 6 ms 3828 KiB
10_max_3_03.txt AC 6 ms 3992 KiB
10_max_3_04.txt AC 7 ms 3856 KiB
10_max_3_05.txt AC 6 ms 3832 KiB
11_max_4_01.txt AC 28 ms 5192 KiB
11_max_4_02.txt WA 28 ms 5164 KiB
11_max_4_03.txt WA 28 ms 5144 KiB
11_max_4_04.txt WA 28 ms 5152 KiB
11_max_4_05.txt WA 28 ms 5316 KiB
12_max_5_01.txt AC 7 ms 4168 KiB
12_max_5_02.txt AC 7 ms 4240 KiB
12_max_5_03.txt AC 7 ms 4184 KiB
12_max_5_04.txt AC 7 ms 4112 KiB
12_max_5_05.txt AC 6 ms 4124 KiB