| 17181 | 2025-05-29 12:06:04 | Ablablabla | Gyors utak | cpp17 | Runtime error 0/100 | 1ms | 576 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<vector<ll>> csucsok;
vector<ll> tin, tout;
ll ido;
void dfs(ll akt){
tin[akt] = ido;
ido++;
for(ll x : csucsok[akt]){
dfs(x);
}
tout[akt] = ido;
ido++;
}
struct segTree{
ll meret = 1;
vector<ll> fa;
vector<bool> csere;
void meretez(ll n){
while(meret < n){
meret *= 2;
}
fa.assign(2*meret - 1, 0);
csere.assign(2*meret - 1, 0);
}
ll keres(ll a, ll b, ll ind, ll kezd, ll veg){
if(veg < kezd){
return 0;
}
if(veg < a || b < kezd){
return 0;
} else if(kezd <= a && b <= veg){
return fa[ind];
}
ll k = (a + b) / 2;
ll akt = keres(a, k, 2*ind +1, kezd, veg) + keres(k + 1, b, 2*ind + 2, kezd, veg);
if(csere[ind]){
akt = (b - a + 1) - akt;
}
return akt;
}
ll valt(ll a, ll b, ll ind, ll kezd, ll veg){
if(veg < a || b < kezd){
return fa[ind];
} else if(kezd <= a && b <= veg){
fa[ind] = (b - a + 1) - fa[ind];
csere[ind] = !csere[ind];
return fa[ind];
}
ll k = (a + b) / 2;
fa[ind] = valt(a, k, 2*ind + 1, kezd, veg) + valt(k + 1, b, 2*ind + 2, kezd, veg);
if(csere[ind]){
fa[ind] = (b - a + 1) - fa[ind];
}
return fa[ind];
}
};
int main(){
auto abc = ifstream("be2.txt");
ll n, q;
abc >> n >> q;
csucsok.assign(n, vector<ll>());
tin.assign(n, 0);
tout.assign(n, 0);
for(ll i = 1; i < n; i++){
ll a;
abc >> a;
a--;
csucsok[a].push_back(i);
}
cout << "beolvas kesz\n";
dfs(0);
cout << "dfs kesz\n";
segTree fa;
fa.meretez(2*n);
for(ll i = 1; i < n; i++){
ll a;
abc >> a;
if(a){
fa.valt(0, fa.meret - 1, 0, tin[i], tout[i]);
}
cout << i << " kesz\n";
}
ll ps = fa.fa[0]/2;
ll pt = n - ps;
cout << (ps*(ps - 1) + pt*(pt - 1))/2 << " ";
while(q--){
ll a;
abc >> a;
fa.valt(0, fa.meret - 1, 0, tin[a], tout[a]);
ps = fa.fa[0]/2;
pt = n - ps;
cout << (ps*(ps - 1) + pt*(pt - 1))/2 << " ";
}
cout << "\n";
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Runtime error | 1ms | 316 KiB | ||||
| 2 | Runtime error | 1ms | 316 KiB | ||||
| subtask2 | 0/10 | ||||||
| 3 | Runtime error | 1ms | 576 KiB | ||||
| 4 | Runtime error | 1ms | 316 KiB | ||||
| 5 | Runtime error | 1ms | 316 KiB | ||||
| 6 | Runtime error | 1ms | 316 KiB | ||||
| 7 | Runtime error | 1ms | 500 KiB | ||||
| 8 | Runtime error | 1ms | 316 KiB | ||||
| subtask3 | 0/11 | ||||||
| 9 | Runtime error | 1ms | 576 KiB | ||||
| 10 | Runtime error | 1ms | 316 KiB | ||||
| 11 | Runtime error | 1ms | 316 KiB | ||||
| 12 | Runtime error | 1ms | 316 KiB | ||||
| 13 | Runtime error | 1ms | 500 KiB | ||||
| 14 | Runtime error | 1ms | 316 KiB | ||||
| 15 | Runtime error | 1ms | 316 KiB | ||||
| 16 | Runtime error | 1ms | 316 KiB | ||||
| 17 | Runtime error | 1ms | 316 KiB | ||||
| 18 | Runtime error | 1ms | 316 KiB | ||||
| 19 | Runtime error | 1ms | 496 KiB | ||||
| 20 | Runtime error | 1ms | 508 KiB | ||||
| 21 | Runtime error | 1ms | 316 KiB | ||||
| 22 | Runtime error | 1ms | 316 KiB | ||||
| 23 | Runtime error | 1ms | 564 KiB | ||||
| 24 | Runtime error | 1ms | 500 KiB | ||||
| subtask4 | 0/21 | ||||||
| 25 | Runtime error | 1ms | 316 KiB | ||||
| 26 | Runtime error | 1ms | 316 KiB | ||||
| 27 | Runtime error | 1ms | 332 KiB | ||||
| 28 | Runtime error | 1ms | 316 KiB | ||||
| 29 | Runtime error | 1ms | 512 KiB | ||||
| 30 | Runtime error | 1ms | 496 KiB | ||||
| subtask5 | 0/24 | ||||||
| 31 | Runtime error | 1ms | 316 KiB | ||||
| 32 | Runtime error | 1ms | 316 KiB | ||||
| 33 | Runtime error | 1ms | 316 KiB | ||||
| 34 | Runtime error | 1ms | 508 KiB | ||||
| subtask6 | 0/34 | ||||||
| 35 | Runtime error | 1ms | 576 KiB | ||||
| 36 | Runtime error | 1ms | 316 KiB | ||||
| 37 | Runtime error | 1ms | 316 KiB | ||||
| 38 | Runtime error | 1ms | 316 KiB | ||||
| 39 | Runtime error | 1ms | 500 KiB | ||||
| 40 | Runtime error | 1ms | 316 KiB | ||||
| 41 | Runtime error | 1ms | 316 KiB | ||||
| 42 | Runtime error | 1ms | 316 KiB | ||||
| 43 | Runtime error | 1ms | 316 KiB | ||||
| 44 | Runtime error | 1ms | 316 KiB | ||||
| 45 | Runtime error | 1ms | 496 KiB | ||||
| 46 | Runtime error | 1ms | 508 KiB | ||||
| 47 | Runtime error | 1ms | 316 KiB | ||||
| 48 | Runtime error | 1ms | 316 KiB | ||||
| 49 | Runtime error | 1ms | 564 KiB | ||||
| 50 | Runtime error | 1ms | 500 KiB | ||||
| 51 | Runtime error | 1ms | 316 KiB | ||||
| 52 | Runtime error | 1ms | 316 KiB | ||||
| 53 | Runtime error | 1ms | 332 KiB | ||||
| 54 | Runtime error | 1ms | 316 KiB | ||||
| 55 | Runtime error | 1ms | 512 KiB | ||||
| 56 | Runtime error | 1ms | 496 KiB | ||||
| 57 | Runtime error | 1ms | 316 KiB | ||||
| 58 | Runtime error | 1ms | 316 KiB | ||||
| 59 | Runtime error | 1ms | 316 KiB | ||||
| 60 | Runtime error | 1ms | 508 KiB | ||||
| 61 | Runtime error | 1ms | 316 KiB | ||||
| 62 | Runtime error | 1ms | 316 KiB | ||||
| 63 | Runtime error | 1ms | 508 KiB | ||||
| 64 | Runtime error | 1ms | 316 KiB | ||||
| 65 | Runtime error | 1ms | 512 KiB | ||||
| 66 | Runtime error | 1ms | 512 KiB | ||||
| 67 | Runtime error | 1ms | 316 KiB | ||||
| 68 | Runtime error | 1ms | 316 KiB | ||||
| 69 | Runtime error | 1ms | 316 KiB | ||||
| 70 | Runtime error | 1ms | 316 KiB | ||||
| 71 | Runtime error | 1ms | 316 KiB | ||||
| 72 | Runtime error | 1ms | 316 KiB | ||||
| 73 | Runtime error | 1ms | 512 KiB | ||||
| 74 | Runtime error | 1ms | 316 KiB | ||||
| 75 | Runtime error | 1ms | 316 KiB | ||||
| 76 | Runtime error | 1ms | 316 KiB | ||||
| 77 | Runtime error | 1ms | 508 KiB | ||||