Codeforces Round #592 DIV2 D問題 (1750pt)
Problem description
省略
省略
C++に変換後のコードはこちら
//no-unlocked
int N, A[1d5], B[1d5], C[3][1d5];
int resi[1d5], deg[1d5], cnv[1d5];
{
ll res = ll_inf, tmp;
int ind[3] = {0,1,2};
graph g;
rd(N);
rep(i,3) rd(C[i](N));
rd((A--,B--)(N-1));
rep(i,N-1) deg[A[i]]++, deg[B[i]]++;
rep(i,N) if(deg[i] >= 3) wt(-1), return 0;
rep(i,N) if(deg[i] == 1) break;
g.setEdgeRootedTree(N,N-1,A,B,i,1,cnv);
do{
tmp = 0;
rep(i,N) tmp += C[ind[i%3]][cnv[i]];
if(tmp < res){
res = tmp;
rep(i,N) resi[cnv[i]] = ind[i%3] + 1;
}
}while(next_permutation(ind,ind+3));
wt(res);
wt(resi(N));
}
Current time: 2024年04月24日17時23分48秒
Last modified: 2019年11月02日02時58分26秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces CF592 CF_Div2_D
トップページに戻る
Logged in as: unknown user (not login)