Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #define _CRT_SECURE_NO_DEPRECATE
  2.  
  3. #include <cstdio>
  4. #include <cstdlib>
  5. #include <cmath>
  6. #include <cctype>
  7. #include <cstring>
  8. #include <ctime>
  9.  
  10. #include <iostream>
  11. #include <algorithm>
  12. #include <vector>
  13. #include <deque>
  14. #include <list>
  15. #include <set>
  16. #include <map>
  17. #include <queue>
  18. #include <stack>
  19. #include <string>
  20. #include <sstream>
  21.  
  22.  
  23. typedef long long int64;
  24. typedef long long li;
  25. typedef long double ld;
  26.  
  27. using namespace std;
  28.  
  29. #define forn(i, n) for(int i = 0; i < int(n); ++i)
  30. #define fore(i, l, r) for(int i = int(l); i < int(r); ++i)
  31. #define forb(i, n) for(int i = int(n) - 1; i >= 0; --i)
  32.  
  33. #define fr first
  34. #define sc second
  35. #define mp make_pair
  36. #define pb push_back
  37.  
  38. const li INF = 1000000002;
  39. double e = 0.0000001;
  40. const double pi=3.1415926535897932384626433832795;
  41.  
  42. vector<int> ans;
  43. vector<bool> v;
  44. vector<vector<int> > a;
  45. int n, k;
  46.  
  47. void gen(int x, int c){
  48. if (c > n){
  49. cout << -1;
  50. exit(0);
  51. }
  52. forn(i, a[x].size()){
  53. if (!v[a[x][i]]){
  54. gen(a[x][i], c + 1);
  55. }
  56. }
  57. v[x] = 1;
  58. ans.push_back(x);
  59. }
  60.  
  61. int main(){
  62. // freopen("input.txt", "r", stdin);
  63. // freopen("output.txt", "w", stdout);
  64.  
  65. cin >> n >> k;
  66. a.resize(n);
  67. vector<int> b(k);
  68. forn(i, k){
  69. cin >> b[i];
  70. b[i]--;
  71. }
  72. forn(i, n){
  73. int c;
  74. cin >> c;
  75. forn(j, c){
  76. int d;
  77. cin >> d;
  78. d--;
  79. a[i].push_back(d);
  80. }
  81. }
  82. v.resize(n);
  83. forn(i, k){
  84. if (!v[b[i]]){
  85. gen(b[i], 0);
  86. }
  87. }
  88.  
  89. cout << ans.size() << endl;
  90. forn(i, ans.size()){
  91. cout << ans[i] + 1 << ' ';
  92. }
  93. return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement