結果

問題 No.3724 Domination
コンテスト
ユーザー akiponggg0119
提出日時 2026-09-19 16:25:50
言語 C++23(gcc16)
(gcc 16.1.0 + boost 1.92.0 + ACL)
コンパイル:
g++-16 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 3,293 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,051 ms
コンパイル使用メモリ 363,312 KB
実行使用メモリ 11,264 KB
最終ジャッジ日時 2026-09-19 16:26:18
合計ジャッジ時間 12,192 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点 20 % AC * 8
満点 80 % AC * 39 WA * 13
合計 2.5 * 20% = 50 点
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'void solve()':
main.cpp:73:17: warning: 'k' may be used uninitialized [-Wmaybe-uninitialized]
   73 |                 if(j == k) {
      |                 ^~
main.cpp:63:16: note: 'k' was declared here
   63 |             ll k;
      |                ^

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using vll = vector<ll>;
const ll INF = LLONG_MAX / 4;
bool chmin(auto& a, const auto& b) { return a > b ? a = b, 1 : 0; }
bool chmax(auto& a, const auto& b) { return a < b ? a = b, 1 : 0; }
auto sz(const auto& a) { return ssize(a); }
#define OVERLOAD_REP(a, b, c, d, name, ...) name
#define rep(...) OVERLOAD_REP(__VA_ARGS__, REP3, REP2, REP1, REP0)(__VA_ARGS__)
#define REP0(x) for (ll _rep_counter = 0; _rep_counter < (x); ++_rep_counter)
#define REP1(i, x) for (ll i = 0; (i) < (x); ++(i))
#define REP2(i, l, r) for (ll i = (l); (i) < (r); ++(i))
#define REP3(i, l, r, c) for (ll i = (l); ((c) > 0 ? (i) < (r) : (i) > (r)); i += (c))
#define each(x,a) for (auto&& x : a)
#define MOD 998244353
#define ll0 ((ll)0)

void solve() {
    ll t; cin >> t;
    rep(t) {
        ll n; cin >> n;
        vll r(n); rep(i, n) {
            cin >> r[i];
            r[i]--;
        }
        vll c(n); rep(i, n) {
            cin >> c[i];
            c[i]--;
        }
        if(n == 1) {
            cout << 1 << endl;
            continue;
        }
        if(n == 2) {
            cout << -1 << endl;
            continue;
        }
        if(n == 3) {
            if(c[0] == c[1] && c[1] == c[2]) {
                cout << -1 << endl;
                continue;
            }
            if(c[0] != c[1] && c[1] != c[2] && c[2] != c[0]) {
                vector v(n, vll(n));
                rep(i, n) rep(j, n) {
                    v[i][j] = i;
                }
                rep(j, n) {
                    v[(c[j]+1)%n][j] = c[j];
                }
                rep(i, n) {
                    rep(j, n) {
                        cout << v[r[i]][j]+1 << " \n"[j==n-1];
                    }
                }
                continue;
            }
            ll k;
            if(c[0] == c[1]) k = 2;
            if(c[1] == c[2]) k = 0;
            if(c[2] == c[0]) k = 1;
            vector v(n, vll(n));
            rep(i, n) rep(j, n) {
                v[i][j] = i;
            }
            ll banana = 0;
            rep(j, n) {
                if(j == k) {
                    v[c[(j+1)%n]][j]=c[j];
                } else {
                    v[(c[j]+1+banana)%n][j] = c[j];
                    banana++;
                }
            }
            rep(i, n) {
                rep(j, n) {
                    cout << v[r[i]][j]+1 << " \n"[j==n-1];
                }
            }
            continue;
        }
        vector v(n, vll(n));
        rep(i, n) rep(j, n) {
            v[i][j] = i;
        }
        vll cc(n, 0);
        bool banana = false;
        rep(j, n) {
            v[(c[j]+cc[c[j]]+1)%n][j] = c[j];
            cc[c[j]]++;
            if(cc[c[j]] == n-1) {
                if(n <= 4) {
                    cout << -1 << endl;
                    banana = true;
                    break;
                }
            }
        }
        if(banana) continue;
        rep(i, n) {
            rep(j, n) {
                cout << v[r[i]][j]+1 << " \n"[j==n-1];
            }
        }
    }
}
int main() {
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);
    solve();
}
0