1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <bitset> 9 #include <algorithm> 10 #include <cmath> 11 #include <cstring> 12 #include <cstdlib> 13 #include <string> 14 #include <sstream> 15 #include <time.h> 16 #define x first 17 #define y second 18 #define pb push_back 19 #define mp make_pair 20 #define lson l,m,rt*2 21 #define rson m+1,r,rt*2+1 22 #define mt(A,B) memset(A,B,sizeof(A)) 23 using namespace std; 24 typedef long long LL; 25 //const double PI = acos(-1); 26 const int N=7e3+10; 27 const LL mod=1e9+7; 28 const int inf = 0x3f3f3f3f; 29 const LL INF=0x3f3f3f3f3f3f3f3fLL; 30 int step[N][2]; 31 int vis[N][2]; 32 int du[N][2]; 33 int k[2]; 34 int n; 35 struct node 36 { 37 int x,y; 38 int type; 39 }; 40 queue<struct node> Q; 41 void bfs() 42 { 43 struct node p,q; 44 while(!Q.empty()) 45 { 46 p=Q.front(); 47 Q.pop(); 48 if(!p.type) 49 { 50 int turn=!p.y; 51 for(int i=0;i<k[turn];i++) 52 { 53 int bu=(p.x+n-step[i][turn])%n; 54 //cout<<p.x<<" "<<bu<<endl; 55 if(vis[bu][turn]==-1) 56 { 57 vis[bu][turn]=1; 58 Q.push({bu,turn,1}); 59 } 60 } 61 } 62 else 63 { 64 int turn=!p.y; 65 for(int i=0;i<k[turn];i++) 66 { 67 int bu=(p.x+n-step[i][turn])%n; 68 du[bu][turn]--; 69 if(du[bu][turn]<=0&&vis[bu][turn]==-1) 70 { 71 vis[bu][turn]=0; 72 Q.push({bu,turn,0}); 73 } 74 } 75 } 76 } 77 } 78 int main() 79 { 80 #ifdef Local 81 freopen("data.txt","r",stdin); 82 #endif 83 ios::sync_with_stdio(false); 84 cin.tie(0); 85 mt(vis,-1); 86 cin>>n; 87 cin>>k[0]; 88 for(int i=0;i<k[0];i++)cin>>step[i][0]; 89 for(int i=0;i<n;i++)du[i][0]=k[0]; 90 cin>>k[1]; 91 for(int i=0;i<k[1];i++)cin>>step[i][1]; 92 for(int i=0;i<n;i++)du[i][1]=k[1]; 93 vis[0][1]=vis[0][1]=0;//失败 94 Q.push({0,0,0}); 95 Q.push({0,1,0}); 96 bfs(); 97 for(int d=0;d<2;d++) 98 { 99 for(int i=1;i<n;i++) 100 { 101 if(vis[i][d]==0)cout<<"Lose "; 102 else if(vis[i][d]==1)cout<<"Win "; 103 else cout<<"Loop "; 104 } 105 cout<<endl; 106 } 107 108 #ifdef Local 109 cerr << "time: " << (LL) clock() * 1000 / CLOCKS_PER_SEC << " ms" << endl; 110 #endif 111 }