提供 Special Judge
查看原帖
提供 Special Judge
556366
FFTotoro楼主2023/4/4 18:21

本题暂时没有 SPJ,这里提供本人编写的 Special Judge.

#include "testlib.h"
#include<bits/stdc++.h>
using namespace std;
int main(int argc,char* argv[]){
  registerTestlibCmd(argc,argv);
  int t=inf.readInt();
  while(t--){
    int n=inf.readInt();
    vector<int> f1(n),f2(n),r(n);
    vector<vector<int> > g(n);
    for(int i=1;i<n;i++){
      int v=inf.readInt(),p=inf.readInt();
      f1[--v]=--p,g[p].emplace_back(v);
    }
    int m=inf.readInt();
    vector<bool> b(n),d(n);
    for(int i=1;i<m;i++){
      int v=inf.readInt(),p=inf.readInt();
      f2[--v]=--p,b[v]=b[p]=true;
    }
    for(int i=0;i<n;i++){
      if(!f1[i])f1[i]=-1;
      if(b[i]&&!f2[i])f2[i]=-1;
    }
    int q=ouf.readInt();
    while(q--){
      int u=ouf.readInt(1,n),v=ouf.readInt(1,n);
      if(u>v)swap(u,v);
      if(--u==--v||f1[u]!=f1[v])quitf(_wa,"Wrong Answer");
      for(int i:g[u])if(!d[i])f1[i]=v,g[v].emplace_back(i);
      g[u].clear(),f1[u]=0,d[u]=true;
    }
    for(int i=0;i<n;i++)
      if(f1[i]!=f2[i])quitf(_wa,"Wrong Answer");
  }
  quitf(_ok,"Accepted");
  return 0;
}
2023/4/4 18:21
加载中...