Remove unused code.

This commit is contained in:
unlockable
2023-11-29 21:00:10 +08:00
parent 57f7938517
commit c80ecf0045

View File

@@ -10,33 +10,17 @@ struct TreeNode {
TreeNode tree[TREE_SIZE] = {0};
int vals[TREE_SIZE] = {0};
// unsigned short num_in_tree[TREE_SIZE] = {0};
// int num_in_tree_head = 0, num_in_tree_tail = 0;
int tree_root = NOTHING;
// int new_tree_node = 0;
int M, K, H;
long long total = 0;
int l = 0;
// int enqueue(int num) {
// num_in_tree[num_in_tree_tail] = num;
// num_in_tree_tail = (num_in_tree_tail + 1) % TREE_SIZE;
// return 0;
// }
// int dequeue() {
// int ans = num_in_tree[num_in_tree_head];
// num_in_tree_head = (num_in_tree_head + 1) % TREE_SIZE;
// return ans;
// }
int insert_node(int num, int pos) {
if (pos == NOTHING) {
// The tree_root is -1!
tree[l % K] = TreeNode{1, NOTHING, NOTHING};
tree_root = l % K;
vals[l % K] = num;
// new_tree_node = (new_tree_node + 1) % TREE_SIZE;
return l % K;
}
tree[pos].size++;
@@ -45,12 +29,10 @@ int insert_node(int num, int pos) {
tree[pos].left = l % K;
tree[l % K] = TreeNode{1, NOTHING, NOTHING};
vals[l % K] = num;
// new_tree_node = (new_tree_node + 1) % TREE_SIZE;
return l % K;
}
else {
return insert_node(num, tree[pos].left);
// return 0;
}
}
else {
@@ -58,12 +40,10 @@ int insert_node(int num, int pos) {
tree[pos].right = l % K;
tree[l % K] = TreeNode{1, NOTHING, NOTHING};
vals[l % K] = num;
// new_tree_node = (new_tree_node + 1) % TREE_SIZE;
return l % K;
}
else {
return insert_node(num, tree[pos].right);
// return 0;
}
}
}
@@ -114,38 +94,12 @@ int delete_node(int num, int pos) {
tree[parent].left = tree[child].right;
}
// tree[pos].val = tree[child].val;
// return pos;
tree[child].left = tree[pos].left;
tree[child].right = tree[pos].right;
tree[child].size = tree[pos].size;
return child;
}
int traverse(int pos) {
if (pos == NOTHING) {
return 0;
}
printf("%d(", vals[pos]);
if (tree[pos].left < NOTHING) {
printf("l%d:", vals[pos]);
traverse(tree[pos].left);
}
if (tree[pos].right < NOTHING) {
printf("r%d:", vals[pos]);
traverse(tree[pos].right);
}
printf(")");
fflush(stdout);
// if (pos < 0) {
// return 0;
// }
// traverse(tree[pos].left);
// printf("%d ", tree[pos].val);
// traverse(tree[pos].right);
return 0;
}
int count_less_than(long long target, int pos) {
if (pos == NOTHING) {
return 0;
@@ -161,8 +115,6 @@ int count_less_than(long long target, int pos) {
return count_less_than(target, tree[pos].left);
}
// tree[pos].val == target
if (tree[pos].left == NOTHING) {
return 1;
}
@@ -175,40 +127,14 @@ int main() {
for (l = 0; l < M; l++) {
scanf("%d", &num);
// printf("num: %d, %d %d\n\n", num, count_less_than(num + H, tree_root),
// printf("num: %d, %d %d\n", num, count_less_than(((long long)num) + H, tree_root), count_less_than(num - H - 1, tree_root));
// printf("num: %d, ", num);
// printf("%d ", count_less_than(((long long)num) + H, tree_root));
// printf("%d\n", count_less_than(num - H - 1, tree_root));
total += count_less_than(((long long)num) + H, tree_root) - count_less_than(num - H - 1, tree_root);
total += count_less_than(((long long)num) + H, tree_root) -
count_less_than(num - H - 1, tree_root);
if (l >= K) {
tree_root = delete_node(vals[l % K], tree_root);
// traverse(tree_root);
// printf("\n");
}
// enqueue(num);
insert_node(num, tree_root);
// traverse(tree_root);
// printf("\n");
}
printf("%lld\n", total);
// int count = 0;
// int num = 0;
// scanf("%d", &count);
// for (int i = 0; i < count; i++) {
// scanf("%d", &num);
// insert_node(num, tree_root);
// }
// for (int i = 0; i < count; i++) {
// printf("%d ", count_less_than(i, tree_root));
// }
return 0;
}