QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#110359 | #5663. Tangle: A DAG for storing transactions | ycccc319# | ML | 1651ms | 447740kb | C++20 | 1.5kb | 2023-06-01 17:33:02 | 2023-06-01 17:33:06 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
int n, TH;
unordered_set<int> zu[10010];
class node {
public:
int v, next;
} edge[10010 << 4];
int head[10010], cnt, weight[10010], indegree[10010];
void add(int u, int v) {
edge[++cnt].v = v;
edge[cnt].next = head[u];
head[u] = cnt;
}
void init() {
for (int i = 0; i <= n + 1; i++) {
zu[i].insert(i);
}
}
void topo() {
queue<int> q;
for (int i = 1; i <= n + 1; i++) {
if (indegree[i] == 0)q.push(i);
}
while (!q.empty()) {
int now = q.front();
q.pop();
for (int i = head[now]; i; i = edge[i].next) {
int to = edge[i].v;
zu[to].merge(unordered_set(zu[now]));
if (--indegree[to] == 0)q.push(to);
}
}
}
void output() {
int ans = 0;
for (int i = 2; i <= n + 1; i++) {
int tmp = 0;
// cout<<i<<": ";
for (auto to: zu[i]) {
tmp += weight[to];
}
if (tmp >= TH) {
cout << i << " " << tmp << "\n";
ans++;
}
}
cout << ans << "\n";
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> TH;
init();
for (int i = 1; i <= n; i++) {
int x, y, z, w;
cin >> x >> y >> z >> w;
weight[x] = w;
add(x, y);
add(x, z);
indegree[y]++;
indegree[z]++;
}
topo();
output();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 3948kb
input:
6 12 2 0 1 3 3 0 2 2 4 1 2 1 5 2 3 3 6 3 4 4 7 3 5 5
output:
2 18 3 14 2
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 2ms
memory: 3916kb
input:
21 20 2 0 1 2 3 1 0 5 4 1 0 2 5 2 1 1 6 1 3 1 7 5 4 1 8 3 7 5 9 2 4 1 10 4 9 1 11 9 4 5 12 4 8 2 13 3 12 2 14 2 10 5 15 11 12 4 16 3 9 2 17 1 16 4 18 0 7 3 19 11 5 2 20 14 4 5 21 19 5 2 22 18 9 4
output:
2 51 3 25 4 50 5 26 7 21 9 35 6
result:
ok 7 lines
Test #3:
score: 0
Accepted
time: 3ms
memory: 4176kb
input:
99 250 2 1 0 1 3 0 2 2 4 3 2 1 5 4 3 4 6 1 2 3 7 5 0 1 8 0 7 2 9 0 8 3 10 3 4 5 11 1 4 4 12 5 6 3 13 12 8 2 14 13 2 3 15 4 10 5 16 5 6 1 17 7 10 1 18 2 5 5 19 9 7 4 20 16 12 5 21 6 3 1 22 7 9 1 23 13 11 1 24 12 9 3 25 7 22 3 26 10 20 5 27 11 12 2 28 26 9 5 29 18 6 5 30 13 17 4 31 25 12 4 32 31 20 3 ...
output:
2 297 3 293 4 290 5 275 6 255 5
result:
ok 6 lines
Test #4:
score: 0
Accepted
time: 3ms
memory: 4152kb
input:
100 200 2 0 1 2 3 2 0 5 4 2 0 2 5 4 0 4 6 2 5 4 7 5 0 5 8 4 2 4 9 2 6 4 10 0 9 3 11 2 8 2 12 4 2 1 13 7 5 3 14 3 4 5 15 10 0 5 16 6 13 1 17 9 10 4 18 12 6 4 19 17 12 1 20 10 8 4 21 2 4 2 22 6 17 2 23 3 12 4 24 21 12 2 25 14 10 5 26 14 21 4 27 13 11 1 28 21 6 1 29 10 5 3 30 26 6 1 31 13 8 5 32 25 19 ...
output:
2 303 3 210 4 296 5 270 6 252 9 225 10 221 12 222 14 201 9
result:
ok 10 lines
Test #5:
score: 0
Accepted
time: 1ms
memory: 4464kb
input:
199 800 2 1 0 1 3 0 2 2 4 3 0 4 5 4 0 3 6 4 3 2 7 0 2 1 8 5 7 3 9 3 0 2 10 1 9 4 11 5 2 4 12 9 4 3 13 7 12 2 14 10 0 1 15 1 6 2 16 5 11 5 17 4 15 4 18 4 14 5 19 11 0 1 20 3 13 5 21 3 4 2 22 20 14 2 23 14 1 5 24 7 19 5 25 13 17 4 26 10 23 5 27 17 12 4 28 12 13 5 29 24 1 4 30 19 7 4 31 18 22 5 32 17 1...
output:
0
result:
ok single line: '0'
Test #6:
score: 0
Accepted
time: 1651ms
memory: 447740kb
input:
5999 15000 2 0 1 2 3 2 1 1 4 3 1 4 5 1 2 5 6 4 1 1 7 2 6 3 8 4 1 5 9 7 8 2 10 0 4 4 11 3 2 1 12 8 1 1 13 10 3 2 14 1 0 3 15 13 1 3 16 0 4 5 17 6 8 2 18 1 6 1 19 5 2 2 20 4 6 5 21 8 0 2 22 9 20 4 23 17 7 4 24 17 0 1 25 23 3 4 26 12 15 1 27 15 5 3 28 17 25 2 29 17 24 3 30 28 9 2 31 22 6 2 32 12 9 3 33...
output:
2 18207 3 18198 4 18196 5 17811 6 18160 7 18147 8 18160 9 18108 10 18039 11 17672 12 17781 13 18035 14 15556 15 17938 16 18046 17 18138 18 17953 19 16110 20 18097 21 17976 22 18092 23 18113 24 18004 25 18001 26 17560 27 17707 28 17997 29 17998 30 16680 31 18085 32 17770 33 17680 34 17906 35 17902 36...
result:
ok 512 lines
Test #7:
score: -100
Memory Limit Exceeded
input:
9999 25000 2 0 1 4 3 2 1 3 4 1 0 3 5 1 4 2 6 3 2 3 7 3 5 2 8 4 6 1 9 3 0 5 10 6 0 1 11 9 6 1 12 9 10 2 13 2 7 2 14 9 4 5 15 7 13 1 16 9 3 4 17 14 4 1 18 6 12 5 19 17 0 5 20 17 4 3 21 10 13 3 22 8 0 3 23 7 19 4 24 13 20 2 25 24 13 1 26 23 20 2 27 19 0 3 28 15 11 2 29 10 15 4 30 10 2 2 31 27 25 4 32 2...