#include "Anyalib.h"
#include <bits/stdc++.h>
using namespace std;
namespace {int H[505], X[505], ord[505], A[505], B[505], N;}
void InitAnya(int N , int A[] , int B[]) {
::N = N;
memcpy(::A,A,sizeof(int) * (N-1));
memcpy(::B,B,sizeof(int) * (N-1));
int D[N];
memset(D,0,sizeof(D));
for(int i=0;i<N-1;i++) {
D[A[i]]++;
D[B[i]]++;
X[A[i]]^=B[i];
X[B[i]]^=A[i];
}
int cnt = 0;
D[0] = -1;
for(int i=0;i<N;i++)
for(int j=i;D[j]==1;j=X[j]) {
D[j]--;
D[X[j]]--;
X[X[j]] ^= j;
ord[cnt++] = j;
}
while(cnt--)
H[ord[cnt]] = H[X[ord[cnt]]] + 1;
int resid[10];
memset(resid,0,sizeof(resid));
for(int i=0;i<10;i++)
resid[H[i] % 10]++;
int mn = min_element(resid,resid+10) - resid;
for(int i=0;i<N;i++)
H[i] = (H[i] % 10 == mn);
}
void Anya(int C[]) {
int W[N], D[N];
for(int i=0;i<N-1;i++) {
Save((X[A[i]]==B[i]?A[i]:B[i]),C[i]);
W[(X[A[i]]==B[i]?A[i]:B[i])] = C[i];
}
D[0] = 0;
for(int i=N-1;i--;)
D[ord[i]] = D[X[ord[i]]] + W[ord[i]];
int cnt = N;
for(int i=0;i<N;i++)
if(H[i]) {
for(int j=0;j<10;j++)
Save(cnt++, !!(D[i] & (1 << j)));
}
}
#include "Borislib.h"
#include <bits/stdc++.h>
using namespace std;
namespace {int H[505], X[505], ord[505], A[505], B[505], N;}
void InitBoris(int N , int A[] , int B[]) {
::N = N;
memcpy(::A,A,sizeof(int) * (N-1));
memcpy(::B,B,sizeof(int) * (N-1));
int D[N];
memset(D,0,sizeof(D));
for(int i=0;i<N-1;i++) {
D[A[i]]++;
D[B[i]]++;
X[A[i]]^=B[i];
X[B[i]]^=A[i];
}
int cnt = 0;
D[0] = -1;
for(int i=0;i<N;i++)
for(int j=i;D[j]==1;j=X[j]) {
D[j]--;
D[X[j]]--;
X[X[j]] ^= j;
ord[cnt++] = j;
}
while(cnt--)
H[ord[cnt]] = H[X[ord[cnt]]] + 1;
int resid[10];
memset(resid,0,sizeof(resid));
for(int i=0;i<10;i++)
resid[H[i] % 10]++;
int mn = min_element(resid,resid+10) - resid;
for(int i=0;i<N;i++)
H[i] = (H[i] % 10 == mn);
}
int Boris(int city) {
int cur = city;
while(cur && !H[cur])
cur = X[cur];
int weight = 0;
if(cur) {
int pos = accumulate(H, H+cur, 0) * 10 + N;
for(int i=pos;i<pos+9;i++)
weight |= (Ask(i) << (i - pos));
}
while(city != cur)
weight += Ask(exchange(city, X[city]));
return weight;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |