// G 矩阵游戏#include<bits/stdc++.h>usingnamespace std;constint N =4e4+10, M =2* N;int h[N], e[N], ne[N], idx, vis[N];int match[N];voidadd(int u,int v){
e[idx]= v;
ne[idx]= h[u];
h[u]= idx++;}intdfs(int u){for(int i = h[u]; i !=-1; i = ne[i]){int j = e[i];if(!vis[j]){
vis[j]=1;if(!match[j]||dfs(match[j])){
match[j]= u;return1;}}}return0;}signedmain(){int T;scanf("%d",&T);while(T--){memset(match,0,sizeof match);memset(h,-1,sizeof h);
idx =0;int n;scanf("%d",&n);for(int i =1; i <= n; i++)for(int j =1; j <= n; j++){int f;scanf("%d",&f);if(f)add(i, j);}int ans =0;for(int i =1; i <= n; i++){memset(vis,0,sizeof vis);if(dfs(i))
ans++;}if(ans == n)printf("Yes\n");elseprintf("No\n");}}
// F Fair#include<bits/stdc++.h>usingnamespace std;constint N =1e5+10, M =2* N;int h[N], e[M], ne[M], dist[N][110], color[N];int n, m, k, s, idx;voidadd(int u,int v){
e[idx]= v;
ne[idx]= h[u];
h[u]= idx++;}voidbfs(int match){
vector<int>vis(n +1);
queue<int> que;for(int i =1; i <= n; i++){if(color[i]== match){
dist[i][match]=0;
que.push(i);
vis[i]=1;}}while(que.size()){int ver = que.front();
que.pop();for(int i = h[ver]; i !=-1; i = ne[i]){int j = e[i];if(vis[j])continue;
vis[j]=1;
que.push(j);
dist[j][match]= dist[ver][match]+1;}}}signedmain(){
cin >> n >> m >> k >> s;for(int i =1; i <= n; i++)
cin >> color[i], h[i]=-1;for(int i =0; i < m; i++){int u, v;
cin >> u >> v;add(u, v);add(v, u);}for(int i =1; i <= k; i++)bfs(i);for(int i =1; i <= n; i++){sort(dist[i]+1, dist[i]+1+ k);int ans =0;for(int j =1; j <= s; j++)
ans += dist[i][j];
cout << ans <<" ";}}
// E Antenna Placement#include<iostream>#include<cstring>usingnamespace std;constint N =5e2+10, M =1e4+10;typedef pair<int,int> PII;int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};char a[N][N];int h[N], e[M], ne[M], idx, vis[N][N];
PII match[N][N];int n, m;voidadd(int u,int v){
e[idx]= v;
ne[idx]= h[u];
h[u]= idx++;}intdfs(int xx,int yy){for(int i =0; i <4; i++){int x = dx[i]+ xx;int y = dy[i]+ yy;if(x <1|| x > n || y <1|| y > m)continue;if(!vis[x][y]&& a[x][y]=='*'){
vis[x][y]=1;if(!match[x][y].first ||dfs(match[x][y].first, match[x][y].second)){
match[x][y]=make_pair(xx, yy);return1;}}}return0;}signedmain(){int T;
cin >> T;while(T--){memset(match,0,sizeof match);
idx =0;
cin >> n >> m;for(int i =1; i <= n; i++)
cin >>(a[i]+1);int ans =0, cnt =0;for(int i =1; i <= n; i++)for(int j =1; j <= m; j++)if(a[i][j]=='*'){
cnt++;memset(vis,0,sizeof vis);if(dfs(i, j))
ans++;}
cout << cnt - ans /2<<"\n";}}
// D find the mincost route#include<bits/stdc++.h>usingnamespace std;#defineintlonglongconstint INF =0x3f3f3f3f;constint N =200;int w[N][N], d[N][N];signedmain(){int n, m;while(cin >> n >> m){for(int i =0; i <= n; i++)for(int j =0; j <= n; j++)
w[i][j]= w[j][i]= INF;for(int i =0; i < m; i++){int u, v, ww;
cin >> u >> v >> ww;
w[u][v]= w[v][u]=min(w[u][v], ww);}memcpy(d, w,sizeof d);int ans = INF;for(int k =1; k <= n; k++){for(int i =1; i < k; i++)for(int j = i +1; j < k; j++)if(d[i][j]+ w[i][k]+ w[j][k]< ans)
ans = d[i][j]+ w[i][k]+ w[j][k];for(int i =1; i <= n; i++)for(int j =1; j <= n; j++)
d[i][j]=min(d[i][j], d[i][k]+ d[k][j]);}if(ans >= INF)
cout <<"It's impossible.\n";else
cout << ans <<"\n";}}
// C Dijkstra?#include<bits/stdc++.h>usingnamespace std;typedef pair<int,int> PII;#defineintlonglongconstint N =2e5+10;int h[N], e[N], ne[N], w[N], path[N], n, m, idx;
vector<int> a;voidadd(int u,int v,int ww){
e[idx]= v;
w[idx]= ww;
ne[idx]= h[u];
h[u]= idx++;}intdij(int sta,int en){
priority_queue<PII, vector<PII>, greater<PII>> que;
vector<int>dist(en +1),st(en +1);for(int i =0; i <= en; i++)
dist[i]=1e11;
dist[sta]=0;
que.push({dist[sta], sta});while(que.size()){
PII f = que.top();
que.pop();int ver = f.second;if(st[ver])continue;
st[ver]=1;for(int i = h[ver]; i !=-1; i = ne[i]){int j = e[i];if(dist[j]> dist[ver]+ w[i]){
path[j]= ver;
dist[j]= dist[ver]+ w[i];
que.push({dist[j], j});}}}return dist[en];}voiddfs(int now,int en){if(now == en)return a.push_back(now);dfs(path[now], en);
a.push_back(now);}signedmain(){
cin >> n >> m;for(int i =0; i <= n; i++)
h[i]=-1;for(int i =0; i < m; i++){int u, v, w;
cin >> u >> v >> w;add(u, v, w);add(v, u, w);}int ans =dij(1, n);if(ans >=1e11)return cout <<-1<< endl,0;dfs(n,1);for(auto t : a)
cout << t <<" ";}
// B Pear-wise Voting#include<bits/stdc++.h>usingnamespace std;constint N =30, M =2010;int h[N], ne[M], e[M], vis[N], w[M], idx;
string s[M];voidadd(int u,int v){
e[idx]= v;
ne[idx]= h[u];
h[u]= idx++;}voiddfs(int num){if(vis[num])return;
vis[num]=1;for(int i = h[num]; i !=-1; i = ne[i])dfs(e[i]);}signedmain(){int n, m;
cin >> n >> m;for(int i =0; i < n; i++)
h[i]=-1;for(int i =0; i < m; i++)
cin >> w[i]>> s[i];for(int i =0; i < n; i++)for(int j = i +1; j < n; j++){int ans =0;for(int k =0; k < m; k++)if(s[k].find((char)('A'+ i))< s[k].find((char)('A'+ j)))
ans += w[k];else
ans -= w[k];if(ans >0)add(i, j);elseadd(j, i);}for(int i =0; i < n; i++){for(int j =0; j < n; j++)
vis[j]=0;dfs(i);int flag =1;for(int j =0; j < n; j++)if(!vis[j])
flag =0;if(flag)printf("%c: can win\n",(char)('A'+ i));elseprintf("%c: can't win\n",(char)('A'+ i));}}
// A Phillip and Trains#include<bits/stdc++.h>usingnamespace std;typedef pair<int,int> PII;constint N =200;
map<pair<int, PII>,int> vis;int ans =0;
string s[5];int n;intcheck(int x,int y){return(!(x <0|| y <0|| x >2||(y < n && s[x][y]>='A'&& s[x][y]<='Z')));}voiddfs(PII sta,int cnt){if(vis[{cnt, sta}])return;
vis[{cnt, sta}]=1;if(sta.second + cnt *3>= n){
ans =1;return;}if(s[sta.first][sta.second + cnt *3+1]>='A'&& s[sta.first][sta.second + cnt *3+1]<='Z')return;for(int i =-1; i <=1; i++){int flag =1;for(int j =1; j <=2; j++)if(!check(sta.first + i, sta.second + cnt *3+ j))
flag =0;if(flag)dfs({sta.first + i, sta.second}, cnt +1);}}signedmain(){int T;
cin >> T;while(T--){
vis.clear();
ans =0;int k;
cin >> n >> k;for(int i =0; i <3; i++)
cin >> s[i];
PII sta;for(int i =0; i <3; i++)if(s[i][0]=='s')
sta ={i,0};dfs(sta,0);if(ans)
cout <<"YES\n";else
cout <<"NO\n";}}