mirror of https://github.com/cyp0633/homework.git
35 lines
774 B
C++
35 lines
774 B
C++
|
//良心树 / CF1143C Queen
|
||
|
#include <cstdio>
|
||
|
#include <cstring>
|
||
|
#include <iostream>
|
||
|
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;
|
||
|
}
|