Remove unused code.

This commit is contained in:
unlockable
2023-11-29 21:00:10 +08:00
parent 8498520398
commit 4d0d8f0d83

View File

@@ -10,33 +10,17 @@ struct TreeNode {
TreeNode tree[TREE_SIZE] = {0}; TreeNode tree[TREE_SIZE] = {0};
int vals[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 tree_root = NOTHING;
// int new_tree_node = 0;
int M, K, H; int M, K, H;
long long total = 0; long long total = 0;
int l = 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) { int insert_node(int num, int pos) {
if (pos == NOTHING) { if (pos == NOTHING) {
// The tree_root is -1! // The tree_root is -1!
tree[l % K] = TreeNode{1, NOTHING, NOTHING}; tree[l % K] = TreeNode{1, NOTHING, NOTHING};
tree_root = l % K; tree_root = l % K;
vals[l % K] = num; vals[l % K] = num;
// new_tree_node = (new_tree_node + 1) % TREE_SIZE;
return l % K; return l % K;
} }
tree[pos].size++; tree[pos].size++;
@@ -45,12 +29,10 @@ int insert_node(int num, int pos) {
tree[pos].left = l % K; tree[pos].left = l % K;
tree[l % K] = TreeNode{1, NOTHING, NOTHING}; tree[l % K] = TreeNode{1, NOTHING, NOTHING};
vals[l % K] = num; vals[l % K] = num;
// new_tree_node = (new_tree_node + 1) % TREE_SIZE;
return l % K; return l % K;
} }
else { else {
return insert_node(num, tree[pos].left); return insert_node(num, tree[pos].left);
// return 0;
} }
} }
else { else {
@@ -58,12 +40,10 @@ int insert_node(int num, int pos) {
tree[pos].right = l % K; tree[pos].right = l % K;
tree[l % K] = TreeNode{1, NOTHING, NOTHING}; tree[l % K] = TreeNode{1, NOTHING, NOTHING};
vals[l % K] = num; vals[l % K] = num;
// new_tree_node = (new_tree_node + 1) % TREE_SIZE;
return l % K; return l % K;
} }
else { else {
return insert_node(num, tree[pos].right); 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[parent].left = tree[child].right;
} }
// tree[pos].val = tree[child].val;
// return pos;
tree[child].left = tree[pos].left; tree[child].left = tree[pos].left;
tree[child].right = tree[pos].right; tree[child].right = tree[pos].right;
tree[child].size = tree[pos].size; tree[child].size = tree[pos].size;
return child; 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) { int count_less_than(long long target, int pos) {
if (pos == NOTHING) { if (pos == NOTHING) {
return 0; return 0;
@@ -161,8 +115,6 @@ int count_less_than(long long target, int pos) {
return count_less_than(target, tree[pos].left); return count_less_than(target, tree[pos].left);
} }
// tree[pos].val == target
if (tree[pos].left == NOTHING) { if (tree[pos].left == NOTHING) {
return 1; return 1;
} }
@@ -175,40 +127,14 @@ int main() {
for (l = 0; l < M; l++) { for (l = 0; l < M; l++) {
scanf("%d", &num); scanf("%d", &num);
total += count_less_than(((long long)num) + H, tree_root) -
count_less_than(num - H - 1, tree_root);
// 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);
if (l >= K) { if (l >= K) {
tree_root = delete_node(vals[l % K], tree_root); tree_root = delete_node(vals[l % K], tree_root);
// traverse(tree_root);
// printf("\n");
} }
// enqueue(num);
insert_node(num, tree_root); insert_node(num, tree_root);
// traverse(tree_root);
// printf("\n");
} }
printf("%lld\n", total); 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; return 0;
} }