#include <bits/stdc++.h>
using namespace std;
void constructUntil(int i, int s, int e, int *tree, int A[]){
if(s > e) return;
if(s == e){
tree[i] = A[s];
return;
}
int mid = (s + e)/2;
constructUntil(i*2 + 1, s, mid, tree, A);
constructUntil(i*2 + 2, mid + 1, e, tree, A);
tree[i] = tree[i*2 + 1] + tree[i*2 + 2];
}
void constructTree(int A[], int *tree, int n){
constructUntil(0, 0, n-1, tree, A);
}
void updateUntil(int si, int s, int e, int i, int j, int k, int *tree){
if(s > e || i > e || j < s) return;
if(s == e){
tree[si] += k;
return;
}
int mid = (s + e)/2;
updateUntil(si*2 + 1, s, mid, i, j, k, tree);
updateUntil(si*2 + 2, mid + 1, e, i, j, k, tree);
tree[si] = tree[si*2 + 1] + tree[si*2 + 2];
}
void update(int *tree, int i, int j, int k, int n){
updateUntil(0, 0, n - 1, i, j, k, tree);
}
int getUntil(int i, int s, int e, int pos, int *tree){
if(s == e) return tree[i];
int mid = (s + e)/2;
if(pos <= mid)
return getUntil(i*2 + 1, s, mid, pos, tree);
else
return getUntil(i*2 + 2, mid + 1, e, pos, tree);
}
int get(int *tree, int pos, int n){
return getUntil(0, 0, n-1, pos, tree);
}
int main() {
int A[] = {1, 2, 3, 4, 5};
int n = sizeof(A)/sizeof(A[0]);
int x = (int)(ceil(log2(n)));
int max_size = (int)pow(2, x) - 1;
cout<<max_size<<"\n";
int *tree = new int[max_size];
constructTree(A, tree, n);
for(int i = 0; i < max_size; i++){
cout<<tree[i]<<" ";
}
cout<<"\n";
update(tree, 1, 3, 1, n);
for(int i = 0; i < max_size; i++){
cout<<tree[i]<<" ";
}
cout<<"\n";
cout<<get(tree, 0, n)<<"\n";
cout<<get(tree, 1, n)<<"\n";
cout<<get(tree, 2, n)<<"\n";
cout<<get(tree, 3, n)<<"\n";
cout<<get(tree, 4, n)<<"\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgY29uc3RydWN0VW50aWwoaW50IGksIGludCBzLCBpbnQgZSwgaW50ICp0cmVlLCBpbnQgQVtdKXsKICAgIGlmKHMgPiBlKSByZXR1cm47CiAgICBpZihzID09IGUpewogICAgICAgIHRyZWVbaV0gPSBBW3NdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQgPSAocyArIGUpLzI7CiAgICBjb25zdHJ1Y3RVbnRpbChpKjIgKyAxLCBzLCBtaWQsIHRyZWUsIEEpOwogICAgY29uc3RydWN0VW50aWwoaSoyICsgMiwgbWlkICsgMSwgZSwgdHJlZSwgQSk7CiAgICB0cmVlW2ldID0gdHJlZVtpKjIgKyAxXSArIHRyZWVbaSoyICsgMl07Cn0Kdm9pZCBjb25zdHJ1Y3RUcmVlKGludCBBW10sIGludCAqdHJlZSwgaW50IG4pewogICAgY29uc3RydWN0VW50aWwoMCwgMCwgbi0xLCB0cmVlLCBBKTsKfQp2b2lkIHVwZGF0ZVVudGlsKGludCBzaSwgaW50IHMsIGludCBlLCBpbnQgaSwgaW50IGosIGludCBrLCBpbnQgKnRyZWUpewogICAgaWYocyA+IGUgfHwgaSA+IGUgfHwgaiA8IHMpIHJldHVybjsKICAgIGlmKHMgPT0gZSl7CiAgICAgICAgdHJlZVtzaV0gKz0gazsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkID0gKHMgKyBlKS8yOwogICAgdXBkYXRlVW50aWwoc2kqMiArIDEsIHMsIG1pZCwgaSwgaiwgaywgdHJlZSk7CiAgICB1cGRhdGVVbnRpbChzaSoyICsgMiwgbWlkICsgMSwgZSwgaSwgaiwgaywgdHJlZSk7CiAgICB0cmVlW3NpXSA9IHRyZWVbc2kqMiArIDFdICsgdHJlZVtzaSoyICsgMl07Cn0Kdm9pZCB1cGRhdGUoaW50ICp0cmVlLCBpbnQgaSwgaW50IGosIGludCBrLCBpbnQgbil7CiAgICB1cGRhdGVVbnRpbCgwLCAwLCBuIC0gMSwgaSwgaiwgaywgdHJlZSk7Cn0KaW50IGdldFVudGlsKGludCBpLCBpbnQgcywgaW50IGUsIGludCBwb3MsIGludCAqdHJlZSl7CiAgICBpZihzID09IGUpIHJldHVybiB0cmVlW2ldOwogICAgaW50IG1pZCA9IChzICsgZSkvMjsKICAgIGlmKHBvcyA8PSBtaWQpCiAgICAgICAgcmV0dXJuIGdldFVudGlsKGkqMiArIDEsIHMsIG1pZCwgcG9zLCB0cmVlKTsKICAgIGVsc2UKICAgICAgICByZXR1cm4gZ2V0VW50aWwoaSoyICsgMiwgbWlkICsgMSwgZSwgcG9zLCB0cmVlKTsKfQppbnQgZ2V0KGludCAqdHJlZSwgaW50IHBvcywgaW50IG4pewogICAgcmV0dXJuIGdldFVudGlsKDAsIDAsIG4tMSwgcG9zLCB0cmVlKTsKfQppbnQgbWFpbigpIHsKICAgIGludCBBW10gPSB7MSwgMiwgMywgNCwgNX07CiAgICBpbnQgbiA9IHNpemVvZihBKS9zaXplb2YoQVswXSk7CiAgICBpbnQgeCA9IChpbnQpKGNlaWwobG9nMihuKSkpOwogICAgaW50IG1heF9zaXplID0gKGludClwb3coMiwgeCkgLSAxOwogICAgY291dDw8bWF4X3NpemU8PCJcbiI7CiAgICBpbnQgKnRyZWUgPSBuZXcgaW50W21heF9zaXplXTsKICAgIGNvbnN0cnVjdFRyZWUoQSwgdHJlZSwgbik7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbWF4X3NpemU7IGkrKyl7CiAgICAgICAgY291dDw8dHJlZVtpXTw8IiAiOwogICAgfQogICAgY291dDw8IlxuIjsKICAgIHVwZGF0ZSh0cmVlLCAxLCAzLCAxLCBuKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtYXhfc2l6ZTsgaSsrKXsKICAgICAgICBjb3V0PDx0cmVlW2ldPDwiICI7CiAgICB9CiAgICBjb3V0PDwiXG4iOwogICAgY291dDw8Z2V0KHRyZWUsIDAsIG4pPDwiXG4iOwogICAgY291dDw8Z2V0KHRyZWUsIDEsIG4pPDwiXG4iOwogICAgY291dDw8Z2V0KHRyZWUsIDIsIG4pPDwiXG4iOwogICAgY291dDw8Z2V0KHRyZWUsIDMsIG4pPDwiXG4iOwogICAgY291dDw8Z2V0KHRyZWUsIDQsIG4pPDwiXG4iOwp9
Main.java:1: error: illegal character: '#'
#include <bits/stdc++.h>
^
Main.java:1: error: class, interface, or enum expected
#include <bits/stdc++.h>
^
Main.java:3: error: class, interface, or enum expected
void constructUntil(int i, int s, int e, int *tree, int A[]){
^
Main.java:5: error: class, interface, or enum expected
if(s == e){
^
Main.java:7: error: class, interface, or enum expected
return;
^
Main.java:8: error: class, interface, or enum expected
}
^
Main.java:10: error: class, interface, or enum expected
constructUntil(i*2 + 1, s, mid, tree, A);
^
Main.java:11: error: class, interface, or enum expected
constructUntil(i*2 + 2, mid + 1, e, tree, A);
^
Main.java:12: error: class, interface, or enum expected
tree[i] = tree[i*2 + 1] + tree[i*2 + 2];
^
Main.java:13: error: class, interface, or enum expected
}
^
Main.java:16: error: class, interface, or enum expected
}
^
Main.java:19: error: class, interface, or enum expected
if(s == e){
^
Main.java:21: error: class, interface, or enum expected
return;
^
Main.java:22: error: class, interface, or enum expected
}
^
Main.java:24: error: class, interface, or enum expected
updateUntil(si*2 + 1, s, mid, i, j, k, tree);
^
Main.java:25: error: class, interface, or enum expected
updateUntil(si*2 + 2, mid + 1, e, i, j, k, tree);
^
Main.java:26: error: class, interface, or enum expected
tree[si] = tree[si*2 + 1] + tree[si*2 + 2];
^
Main.java:27: error: class, interface, or enum expected
}
^
Main.java:30: error: class, interface, or enum expected
}
^
Main.java:33: error: class, interface, or enum expected
int mid = (s + e)/2;
^
Main.java:34: error: class, interface, or enum expected
if(pos <= mid)
^
Main.java:36: error: class, interface, or enum expected
else
^
Main.java:38: error: class, interface, or enum expected
}
^
Main.java:41: error: class, interface, or enum expected
}
^
Main.java:44: error: class, interface, or enum expected
int n = sizeof(A)/sizeof(A[0]);
^
Main.java:45: error: class, interface, or enum expected
int x = (int)(ceil(log2(n)));
^
Main.java:46: error: class, interface, or enum expected
int max_size = (int)pow(2, x) - 1;
^
Main.java:47: error: class, interface, or enum expected
cout<<max_size<<"\n";
^
Main.java:48: error: class, interface, or enum expected
int *tree = new int[max_size];
^
Main.java:49: error: class, interface, or enum expected
constructTree(A, tree, n);
^
Main.java:50: error: class, interface, or enum expected
for(int i = 0; i < max_size; i++){
^
Main.java:50: error: class, interface, or enum expected
for(int i = 0; i < max_size; i++){
^
Main.java:50: error: class, interface, or enum expected
for(int i = 0; i < max_size; i++){
^
Main.java:52: error: class, interface, or enum expected
}
^
Main.java:54: error: class, interface, or enum expected
update(tree, 1, 3, 1, n);
^
Main.java:55: error: class, interface, or enum expected
for(int i = 0; i < max_size; i++){
^
Main.java:55: error: class, interface, or enum expected
for(int i = 0; i < max_size; i++){
^
Main.java:55: error: class, interface, or enum expected
for(int i = 0; i < max_size; i++){
^
Main.java:57: error: class, interface, or enum expected
}
^
Main.java:59: error: class, interface, or enum expected
cout<<get(tree, 0, n)<<"\n";
^
Main.java:60: error: class, interface, or enum expected
cout<<get(tree, 1, n)<<"\n";
^
Main.java:61: error: class, interface, or enum expected
cout<<get(tree, 2, n)<<"\n";
^
Main.java:62: error: class, interface, or enum expected
cout<<get(tree, 3, n)<<"\n";
^
Main.java:63: error: class, interface, or enum expected
cout<<get(tree, 4, n)<<"\n";
^
Main.java:64: error: class, interface, or enum expected
}
^
45 errors