fork(3) download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <stdio.h>
  4. #include <cmath>
  5. #include <cstring>
  6. #include <set>
  7. #include <map>
  8. #include <deque>
  9. #include <queue>
  10. #include <stack>
  11. #define FOR(i,a,b) for (typeof(b) i=a; i <=b ; i++)
  12. #define FO(i,a,b) for (typeof(b) i=a; i < b ; i++)
  13. #define FORD(i,a,b) for (typeof(a) i=a; i >=b ; i--)
  14. #define SET(arr,c) memset(arr,c,sizeof(arr))
  15. #define LL long long
  16. #define ULL unsigned long long
  17. #define mp make_pair
  18. #define pb push_back
  19. #define pf push_front
  20. #define fi first
  21. #define se second
  22. #define PI 2*acos(0,0)
  23. #define infi 1e18
  24. #define oo 1e18
  25. using namespace std;
  26.  
  27. template <class T> int getbit(int i, T X) { return (X & (1<<(i-1))); }
  28. template <class T> T onbit(int i, T X) { return (X | (1<<(i-1))); }
  29. template <class T> T offbit(int i, T X) { return (X | (1<<(i-1)) - (1<<(i-1))); }
  30. template <class T> T sqr(T x) { return (x*x); }
  31. template <class T> T cube (T x) { return (x*x*x); }
  32. template <class T> T gcd(T a, T b) {T r; while(b!=0) {r=a%b;a=b;b=r;} return a;}
  33. template <class T> T lcm(T a, T b) { return a / gcd(a, b) * b; }
  34.  
  35. int csx[4]={0,0,-1,1};
  36. int csy[4]={-1,1,0,0};
  37.  
  38. typedef pair <int, int> II;
  39. typedef pair <II, int> III;
  40. const int MOD = 1000000007;
  41. const int maxn = 100005;
  42.  
  43. /******VAR******/
  44. int n, m, v[maxn + 5];
  45. LL sum[maxn + 5];
  46. vector <int> adj[maxn + 5], adje[maxn + 5];
  47. III e[maxn + 5];
  48. /***************/
  49.  
  50. void enter() {
  51. int per;
  52. cin >> n >> m;
  53. SET(sum, 0);
  54. FOR(i, 1, n) {
  55. cin >> e[i].fi.fi >> e[i].fi.se;
  56. e[i].se = i;
  57. FOR(j, 1, e[i].fi.fi) {
  58. cin >> per;
  59. adj[per].pb(i);
  60. sum[i] += per;
  61. adje[i].pb(per);
  62. }
  63. }
  64. }
  65.  
  66. bool cmp(III a, III b) {
  67. return (a.fi.se < b.fi.se);
  68. }
  69.  
  70. void solve() {
  71. queue <int> Q;
  72.  
  73. SET(v, -1);
  74.  
  75. FOR(i, 1, n) if (e[i].fi.fi == 1) {
  76. Q.push(i);
  77. v[sum[i]] = e[i].fi.se;
  78. dd[i] = 1;
  79. }
  80.  
  81. while (Q.size() > 0) {
  82. int p = Q.front(); Q.pop();
  83. int per = sum[p];
  84. if (e[p].fi.fi == 0) continue;
  85. FO(i, 0, adj[per].size()) {
  86. int vv = adj[per][i];
  87.  
  88. if (v[per] > e[vv].fi.se) {
  89. cout << "Poor memory";
  90. return ;
  91. }
  92.  
  93. sum[vv] -= per;
  94. if (e[vv].fi.fi > 0) e[vv].fi.fi --;
  95. if (e[vv].fi.fi == 1) {
  96. v[sum[vv]] = e[vv].fi.se;
  97. Q.push(vv);
  98. }
  99. }
  100. }
  101.  
  102.  
  103. sort(e + 1, e + n + 1, cmp);
  104. FOR(i, 1, n) {
  105. int sz = adje[e[i].se].size();
  106. int p = -1;
  107. FO(j, 0, sz) {
  108. int vv = adje[e[i].se][j];
  109. if (v[vv] == -1) v[vv] = e[i].fi.se;
  110. p = max(p, v[vv]);
  111. }
  112. if (p != e[i].fi.se) {
  113. cout << "Poor memory";
  114. return ;
  115. }
  116. }
  117.  
  118. cout << "Good memory" << endl;
  119. FOR(i, 1, m) if (v[i] != -1) cout << v[i] << " "; else cout << 1 << " ";
  120.  
  121. }
  122.  
  123. int main() {
  124. // freopen("test.in", "r", stdin);
  125. enter();
  126. solve();
  127. return 0;
  128. }
  129.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function 'void solve()':
prog.cpp:78:9: error: 'dd' was not declared in this scope
         dd[i] = 1;
         ^
stdout
Standard output is empty