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 |
|
|
| 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 |