# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
24452 | Bruteforceman | Tug of War (BOI15_tug) | C++11 | 19 ms | 5084 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bits/stdc++.h"
using namespace std;
bool del[2 * 30005];
int deg[2][30005];
vector <int> g[2][30005];
struct data
{
int l, r, s;
data () {}
data (int l, int r, int s) : l(l), r(r), s(s) {}
} a[2 * 30005];
struct node
{
int i, side;
node () {}
node (int i, int side) : i(i), side(side) {}
};
int main(int argc, char const *argv[])
{
int n, k;
scanf("%d %d", &n, &k);
for(int i = 1; i <= n+n; i++) {
int l, r, s;
scanf("%d %d %d", &l, &r, &s);
a[i] = data(l, r, s);
g[0][l].push_back(i);
g[1][r].push_back(i);
++deg[0][l];
++deg[1][r];
}
queue <node> Q;
for(int i = 1; i <= n; i++) {
// cout << i << " " << deg[0][i] << " " << deg[1][i] << endl;
if(deg[0][i] == 1) Q.push(node(i, 0));
if(deg[1][i] == 1) Q.push(node(i, 1));
if(deg[0][i] == 0 || deg[1][i] == 0) {
printf("NO\n");
exit(0);
}
}
int sum[2];
sum[0] = sum[1] = 0;
while(!Q.empty()) {
node p = Q.front();
Q.pop();
for(auto i : g[p.side][p.i]) {
if(del[i] == false) {
// cout << "match " << p.side << " " << p.i << " with " << i << endl;
sum[p.side] += a[i].s;
del[i] = true;
if(p.side == 0) {
--deg[1][a[i].r];
if(deg[1][a[i].r] == 1) {
Q.push(node(a[i].r, 1));
}
if(deg[1][a[i].r] == 0) {
printf("NO\n");
exit(0);
}
} else {
--deg[0][a[i].l];
if(deg[0][a[i].l] == 1) {
Q.push(node(a[i].l, 0));
}
if(deg[0][a[i].l] == 0) {
printf("NO\n");
exit(0);
}
}
}
}
}
printf("YES\n");
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |