提出 #48426001
ソースコード 拡げる
// LUOGU_RID: 139211436
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef long double ldb;
#define rep(i,l,r) for(int i(l);i<=(r);++i)
#define per(i,r,l) for(int i(r);i>=(l);--i)
#define eb emplace_back
#define File(filename) freopen(filename ".in","r",stdin),freopen(filename ".out","w",stdout)
#ifdef EXODUS
#define Debug(...) fprintf(stderr,__VA_ARGS__)
#else
#define Debug(...) 0
#endif
//=========================================================================================================
// Something about IO
template<typename T>
void read(T &x){
x=0;T flg=1;
char ch=getchar();
while(!isdigit(ch)){if(ch=='-')flg=-1;ch=getchar();}
while(isdigit(ch))x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
x*=flg;
}
template<typename T,typename... Args>
void read(T &x,Args &...args){read(x),read(args...);}
//=========================================================================================================
// Define the global variables here.
bool membg=0;
constexpr int N=2e5+7;
int n;
vector<int>g[N];
int col[N],cur[N],anc[N];
char s[N];
bool memed=0;
//=========================================================================================================
// Code here.
bool dfs(int u){
int cnt=0;
for(auto v:g[u]){
g[v].erase(find(g[v].begin(),g[v].end(),u));
anc[v]=u;if(!dfs(v))return false;
if(cur[v]==-1)cur[v]=col[u];
cnt+=(cur[v]==col[u]);
}
if(cnt<(int)g[u].size()/2){
return false;
}
else if(cnt==(int)g[u].size()/2){
if(!anc[u]||(cur[anc[u]]!=-1&&cur[anc[u]]!=col[u]))return false;
cur[anc[u]]=col[u];return true;
}
else{
return true;
}
}
void solve(){
read(n);
for(int i=1;i<=n;i++)g[i].clear(),cur[i]=-1,anc[i]=0;
for(int i=1,u,v;i<n;i++)read(u,v),g[u].eb(v),g[v].eb(u);
scanf("%s",s+1);
for(int i=1;i<=n;i++)col[i]=(s[i]=='B');
if(!dfs(1))return printf("-1\n"),void();
if(cur[1]==-1)cur[1]=0;
for(int i=1;i<=n;i++)putchar(cur[i]==0?'W':'B');
printf("\n");
return;
}
//=========================================================================================================
int main(){
Debug("%.3lfMB\n",fabs(&memed-&membg)/1024.0/1024.0);
int timbg=clock();
int T=1;read(T);
while(T--)solve();
int timed=clock();
Debug("%.3lfs\n",1.0*(timed-timbg)/CLOCKS_PER_SEC);
fflush(stdout);
return 0;
}
提出情報
コンパイルエラー
Main.cpp: In function ‘int main()’:
Main.cpp:18:28: warning: statement has no effect [-Wunused-value]
18 | #define Debug(...) 0
| ^
Main.cpp:89:9: note: in expansion of macro ‘Debug’
89 | Debug("%.3lfMB\n",fabs(&memed-&membg)/1024.0/1024.0);
| ^~~~~
Main.cpp:18:28: warning: statement has no effect [-Wunused-value]
18 | #define Debug(...) 0
| ^
Main.cpp:94:9: note: in expansion of macro ‘Debug’
94 | Debug("%.3lfs\n",1.0*(timed-timbg)/CLOCKS_PER_SEC);
| ^~~~~
Main.cpp:90:13: warning: unused variable ‘timbg’ [-Wunused-variable]
90 | int timbg=clock();
| ^~~~~
Main.cpp:93:13: warning: unused variable ‘timed’ [-Wunused-variable]
93 | int timed=clock();
| ^~~~~
Main.cpp: In function ‘void solve()’:
Main.cpp:76:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
76 | scanf("%s",s+1);
| ~~~~~^~~~~~~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00-sample-001.txt |
| All |
00-sample-001.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00-sample-001.txt |
AC |
3 ms |
8484 KiB |
| 01-001.txt |
AC |
9 ms |
8488 KiB |
| 01-002.txt |
AC |
9 ms |
8348 KiB |
| 01-003.txt |
AC |
9 ms |
8488 KiB |
| 01-004.txt |
AC |
9 ms |
8440 KiB |
| 01-005.txt |
AC |
8 ms |
8364 KiB |
| 01-006.txt |
AC |
8 ms |
8440 KiB |
| 01-007.txt |
AC |
8 ms |
8448 KiB |
| 01-008.txt |
AC |
8 ms |
8480 KiB |
| 01-009.txt |
AC |
40 ms |
17588 KiB |
| 01-010.txt |
AC |
48 ms |
17440 KiB |
| 01-011.txt |
AC |
44 ms |
17512 KiB |
| 01-012.txt |
AC |
50 ms |
17700 KiB |
| 01-013.txt |
AC |
31 ms |
17148 KiB |
| 01-014.txt |
AC |
43 ms |
17108 KiB |
| 01-015.txt |
AC |
45 ms |
17112 KiB |
| 01-016.txt |
AC |
39 ms |
17152 KiB |
| 01-017.txt |
AC |
42 ms |
21576 KiB |
| 01-018.txt |
AC |
51 ms |
22524 KiB |
| 01-019.txt |
AC |
53 ms |
21608 KiB |
| 01-020.txt |
AC |
55 ms |
21652 KiB |
| 01-021.txt |
AC |
29 ms |
11268 KiB |
| 01-022.txt |
AC |
28 ms |
11324 KiB |
| 01-023.txt |
AC |
29 ms |
11132 KiB |
| 01-024.txt |
AC |
27 ms |
10988 KiB |
| 01-025.txt |
AC |
30 ms |
12172 KiB |
| 01-026.txt |
AC |
30 ms |
12068 KiB |