結果

問題 No.3341 Making Beautiful Graphs
コンテスト
ユーザー AK_Mi
提出日時 2025-11-14 14:53:07
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,429 bytes
コンパイル時間 6,326 ms
コンパイル使用メモリ 334,652 KB
実行使用メモリ 7,720 KB
最終ジャッジ日時 2025-11-14 14:53:16
合計ジャッジ時間 8,277 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 4 WA * 46
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;

int main(){
    ll n;
    cin >> n;

    if(n < 3)cout << -1 << '\n';
    else{
        cout << n * n * 2 << '\n';

        vector<vector<ll>> hen(n*n,vector<ll>(4,0));
        hen[0][0] = 1;
        hen[0][1] = 2;
        hen[0][2] = n*n-2;
        hen[0][3] = n*n-1;

        for(ll i = 1; i < n*n; i++){
            for(ll t = 0; t < 4; t++){
                hen[i][t] = hen[i-1][t] + 1;
                if(hen[i][t] == n*n)hen[i][t] = 0;
            }
            sort(hen[i].begin(),hen[i].end());
        }

        vector<vector<bool>> way(n*n,vector<bool>(n*n,0));

        bool ok = 1;
        for(ll i = 0; i < n*n; i++){
            for(ll t = 0; t < 4; t++){
                if(i < hen[i][t]){
                    way[i][hen[i][t]] = 1;
                }else{
                    if(way[hen[i][t]][i] == 0){
                        ok = 0;
                        break;
                    }
                }
            }
        }

        if(ok == 0)cout << -1 << '\n';
        else{
            for(ll i = 0; i < n*n; i++){
                for(ll t = 0; t < 4; t++){
                    if(i < hen[i][t]){
                        cout << i+1 << " " << hen[i][t]+1 << '\n';
                    }
                }
            }

        }

        
    }

    return 0;
}
0