Submission #114029

#TimeUsernameProblemLanguageResultExecution timeMemory
114029sebinkimSleepy game (innopolis2018_final_D)C++14
100 / 100
190 ms21076 KiB
#include <bits/stdc++.h> using namespace std; vector <int> V1[202020], V2[101010]; queue <int> Q; int P[202020]; bool chk[202020], sib[202020], fin[202020]; int n, m, s; void dfs(int p) { sib[p] = 1; for(int &t: V2[p]){ if(!sib[t]){ dfs(t); } else if(!fin[t]){ printf("Draw\n"); exit(0); } } fin[p] = 1; } int main() { int i, a, b, p; scanf("%d%d", &n, &m); for(i=1; i<=n; i++){ scanf("%d", &a); if(a == 0){ chk[i - 1 << 1 | 1] = 1; P[i - 1 << 1 | 1] = -1; Q.push(i - 1 << 1 | 1); } for(; a--; ){ scanf("%d", &b); V1[b - 1 << 1].push_back(i - 1 << 1 | 1); V1[b - 1 << 1 | 1].push_back(i - 1 << 1); V2[i].push_back(b); } } scanf("%d", &s); for(; !Q.empty(); ){ p = Q.front(); Q.pop(); for(int &t: V1[p]){ if(!chk[t]){ chk[t] = 1; P[t] = p; Q.push(t); } } } if(chk[s - 1 << 1]){ printf("Win\n"); for(i = s - 1 << 1; i != -1; i = P[i]){ printf("%d ", (i >> 1) + 1); } printf("\n"); } else{ dfs(s); printf("Lose\n"); } return 0; }

Compilation message (stderr)

D.cpp: In function 'int main()':
D.cpp:38:10: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
    chk[i - 1 << 1 | 1] = 1; P[i - 1 << 1 | 1] = -1;
        ~~^~~
D.cpp:38:33: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
    chk[i - 1 << 1 | 1] = 1; P[i - 1 << 1 | 1] = -1;
                               ~~^~~
D.cpp:39:13: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
    Q.push(i - 1 << 1 | 1);
           ~~^~~
D.cpp:44:9: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
    V1[b - 1 << 1].push_back(i - 1 << 1 | 1);
       ~~^~~
D.cpp:44:31: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
    V1[b - 1 << 1].push_back(i - 1 << 1 | 1);
                             ~~^~~
D.cpp:45:9: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
    V1[b - 1 << 1 | 1].push_back(i - 1 << 1);
       ~~^~~
D.cpp:45:35: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
    V1[b - 1 << 1 | 1].push_back(i - 1 << 1);
                                 ~~^~~
D.cpp:62:11: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
  if(chk[s - 1 << 1]){
         ~~^~~
D.cpp:64:13: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   for(i = s - 1 << 1; i != -1; i = P[i]){
           ~~^~~
D.cpp:32:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &m);
  ~~~~~^~~~~~~~~~~~~~~~
D.cpp:35:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a);
   ~~~~~^~~~~~~~~~
D.cpp:43:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d", &b);
    ~~~~~^~~~~~~~~~
D.cpp:50:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &s);
  ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...