diff --git a/CSP-Training/5/3-queen.cpp b/CSP-Training/5/3-queen.cpp new file mode 100644 index 0000000..8cd772c --- /dev/null +++ b/CSP-Training/5/3-queen.cpp @@ -0,0 +1,35 @@ +//良心树 / CF1143C Queen +#include +#include +#include +using namespace std; +bool unrespectedByAll[100001], unrespectParent[100001]; +int main() +{ + int n, parent, respect, i; + bool printed = false; + memset(unrespectedByAll, 1, sizeof(unrespectedByAll)); + scanf("%d", &n); + for (i = 1; i <= n; i++) + { + scanf("%d %d", &parent, &respect); + if (parent != -1) + { + unrespectedByAll[parent] &= respect; + unrespectParent[i] = respect; + } + } + for (i = 1; i <= n; i++) + { + if (unrespectParent[i] && unrespectedByAll[i]) + { + printf("%d ", i); + printed = true; + } + } + if (!printed) + { + printf("-1"); + } + return 0; +} \ No newline at end of file