結果

問題 No.3723 Climb or Detour
コンテスト
ユーザー NULL502
提出日時 2026-09-19 13:43:53
言語 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
結果
AC  
実行時間 3 ms / 2,000 ms
+ 983µs
コード長 1,186 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 8,405 ms
コンパイル使用メモリ 357,088 KB
実行使用メモリ 9,920 KB
最終ジャッジ日時 2026-09-19 13:44:20
合計ジャッジ時間 7,861 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 58
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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

int main(){
    ll N,K,sr,sc,tr,tc; cin>>N>>K>>sr>>sc>>tr>>tc;
    sr--; sc--; tr--; tc--;
    ll dist=abs(sr-tr)+abs(sc-tc);
    if(K<dist||dist+dist/2*2<K||(K-dist)%2!=0){
        cout<<-1<<endl;
        return 0;
    }
    vector<string> ans(N,string(N,'.'));
    for(ll i=0;i<(K-dist)/2;i++){
        if(sr<=tr){
            if(sc<=tc){
                ll b=sr+sc+2*i+1;
                for(ll j=0;j<N;j++){
                    if(0<=b-j&&b-j<N) ans[j][b-j]='#';
                }
            }
            else{
                ll b=sr-sc+2*i+1;
                for(ll j=0;j<N;j++){
                    if(0<=j-b&&j-b<N) ans[j][j-b]='#';
                }
            }
        }
        else{
            if(sc<=tc){
                ll b=tr-tc+2*i+1;
                for(ll j=0;j<N;j++){
                    if(0<=j-b&&j-b<N) ans[j][j-b]='#';
                }
            }
            else{
                ll b=tr+tc+2*i+1;
                for(ll j=0;j<N;j++){
                    if(0<=b-j&&b-j<N) ans[j][b-j]='#';
                }
            }
        }
    }
    for(ll i=0;i<N;i++) cout<<ans[i]<<endl;
}
0