题解:CF2094C Brr Brrr Patapim

· · 题解

我们只需要看边上的,然后看看边上哪个没有先输出哪个,然后从 (1,1) 点开始,先往左到头这一排是 2n+1 的,然后再往下这一排是 n+12n 的。

#include<bits/stdc++.h>
using namespace std;
const int N=805;
int t,n,a[N][N];
bool vis[2*N];
int main()
{
    cin>>t;
    while(t--)
    {
        memset(vis,0,sizeof(vis));
        cin>>n;
        for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j) cin>>a[i][j];
        for(int i=1;i<=n;++i) vis[a[1][i]]=1;
        for(int i=2;i<=n;++i) vis[a[i][n]]=1;
        for(int i=1;i<=2*n;++i)
        if(!vis[i])
        {
            cout<<i<<" ";
            break;
        }
        for(int i=1;i<=n;++i) cout<<a[1][i]<<" ";
        for(int i=2;i<=n;++i) cout<<a[i][n]<<" ";
        cout<<"\n";
    }
    return 0;
}