Submission #102535

# Submission time Handle Problem Language Result Execution time Memory
102535 2019-03-25T19:03:26 Z rubenvd Ball Machine (BOI13_ballmachine) C++14
0 / 100
163 ms 13424 KB
#include <bits/stdc++.h>
using namespace std;
int par[100005], val[100005], num = 0, numD = 0, place[100005];
bool filled[100005];
vector<int> child[100005], topo;
priority_queue<int, vector<int>, greater<int>> deleted;

bool compareInt(const int& lhs, const int& rhs)
{
  return val[lhs] < val[rhs];
}

signed dfs( int u ){
	int mini = 1e7;
	for( auto v : child[u] ){
		mini = min(dfs(v), mini);
	}

	place[u] = topo.size();
	topo.push_back(u);

	val[u] = min(u, mini);
	return val[u];
}

int add( int cnt ){
	int last;
	for( ; cnt > 0 && !deleted.empty(); cnt-- ){
		filled[topo[deleted.top()]] = true;
		last = topo[deleted.top()];
		deleted.pop();
	}

	return last;
}

int del( int u ){
	int in = par[u], cnt = 0, prev = u;

	while( filled[in] ){
		in = par[in];
		prev = par[prev];
		cnt++;
	}

	deleted.push(place[prev]);
	filled[prev] = false;
	return cnt;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);

	int n, q, root, type, k;
	cin >> n >> q;

	for( int i = 1; i <= n; ++i ){
		filled[i] = false;
		cin >> par[i];
		child[par[i]].push_back(i);
		if( par[i] == 0 )
			root = i;
	}

	dfs(root);
	for( int i = 0; i < n; ++i )
		sort(child[i].begin(), child[i].end(), compareInt);
	topo.clear();
	dfs(root);
	for( int i = 0; i < topo.size(); ++i )
		deleted.push(place[topo[i]]);

	for( int i= 0; i < q; ++i ){
		cin >> type >> k;
		if( type == 1 ){
			int out = add(k);
			cout << out << "\n";
		} else {
			cout << 0 << "\n";
		}
	}
	return 0;
}

Compilation message

ballmachine.cpp: In function 'int main()':
ballmachine.cpp:71:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for( int i = 0; i < topo.size(); ++i )
                  ~~^~~~~~~~~~~~~
ballmachine.cpp: In function 'int add(int)':
ballmachine.cpp:34:9: warning: 'last' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return last;
         ^~~~
ballmachine.cpp: In function 'int main()':
ballmachine.cpp:70:5: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized]
  dfs(root);
  ~~~^~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 2688 KB Output isn't correct
2 Incorrect 48 ms 5364 KB Output isn't correct
3 Incorrect 48 ms 5620 KB Output isn't correct
4 Incorrect 4 ms 2688 KB Output isn't correct
5 Incorrect 3 ms 2688 KB Output isn't correct
6 Incorrect 5 ms 2816 KB Output isn't correct
7 Incorrect 4 ms 2688 KB Output isn't correct
8 Incorrect 5 ms 2816 KB Output isn't correct
9 Incorrect 7 ms 2816 KB Output isn't correct
10 Incorrect 13 ms 3428 KB Output isn't correct
11 Incorrect 53 ms 5488 KB Output isn't correct
12 Incorrect 53 ms 5592 KB Output isn't correct
13 Incorrect 56 ms 5492 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 28 ms 4856 KB Output isn't correct
2 Incorrect 103 ms 9432 KB Output isn't correct
3 Incorrect 65 ms 6640 KB Output isn't correct
4 Incorrect 33 ms 5112 KB Output isn't correct
5 Incorrect 35 ms 4864 KB Output isn't correct
6 Incorrect 55 ms 4984 KB Output isn't correct
7 Incorrect 32 ms 4472 KB Output isn't correct
8 Incorrect 44 ms 4856 KB Output isn't correct
9 Incorrect 141 ms 9840 KB Output isn't correct
10 Incorrect 110 ms 9456 KB Output isn't correct
11 Incorrect 101 ms 9508 KB Output isn't correct
12 Incorrect 105 ms 8172 KB Output isn't correct
13 Incorrect 108 ms 11920 KB Output isn't correct
14 Incorrect 62 ms 6636 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 44 ms 6336 KB Output isn't correct
2 Incorrect 107 ms 8812 KB Output isn't correct
3 Incorrect 81 ms 11116 KB Output isn't correct
4 Incorrect 75 ms 8560 KB Output isn't correct
5 Incorrect 63 ms 8312 KB Output isn't correct
6 Incorrect 85 ms 8180 KB Output isn't correct
7 Incorrect 69 ms 7412 KB Output isn't correct
8 Incorrect 81 ms 11120 KB Output isn't correct
9 Incorrect 93 ms 10348 KB Output isn't correct
10 Incorrect 110 ms 9904 KB Output isn't correct
11 Incorrect 114 ms 10120 KB Output isn't correct
12 Incorrect 148 ms 8844 KB Output isn't correct
13 Incorrect 132 ms 13424 KB Output isn't correct
14 Incorrect 97 ms 6640 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 113 ms 10256 KB Output isn't correct
2 Incorrect 120 ms 8796 KB Output isn't correct
3 Incorrect 126 ms 13156 KB Output isn't correct
4 Incorrect 114 ms 10284 KB Output isn't correct
5 Incorrect 108 ms 9888 KB Output isn't correct
6 Incorrect 109 ms 9588 KB Output isn't correct
7 Incorrect 139 ms 8656 KB Output isn't correct
8 Incorrect 163 ms 13136 KB Output isn't correct
9 Incorrect 74 ms 6640 KB Output isn't correct