結果
問題 |
No.3191 Operation Puzzle
|
ユーザー |
|
提出日時 | 2025-06-27 21:47:03 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,733 bytes |
コンパイル時間 | 4,184 ms |
コンパイル使用メモリ | 276,112 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-06-27 21:47:12 |
合計ジャッジ時間 | 5,879 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 13 WA * 32 |
ソースコード
#ifndef ONLINE_JUDGE #define _GLIBCi_DEBUG #endif //#pragma GCC optimize("Ofast") //#pragma GCC optimize "O3,omit-frame-pointer,inline" #include <iostream> // cout, endl, cin #include <string> // string, to_string, stoi #include <vector> // vector #include <algorithm>// min, mai, swap, sort, reverse, lower_bound, upper_bound #include <utility> // pair, make_pair #include <tuple> // tuple, make_tuple #include <cstdint> // int64_t, int*_t #include <cstdio> // printf #include <map> // map #include <queue> // queue, priority_queue #include <set> // set #include <stack> // stack #include <deque> // deque #include <unordered_map> // unordered_map #include <unordered_set> // unordered_set #include <bitset> // bitset #include <cctype> // isupper, islower, isdigit, toupper, tolower #include <iomanip> // fiied,setprecision #include <limits.h> // INT_MAi #include <math.h> // M_PI #include <random> // random_device, mt19937, uniform_int_distribution #include <regex> // 正規表現 #include <time.h> // time #include <fstream> // ifstream, ofstream #include <array> // array #include <bit> // bit #include <chrono> // chrono #include <span> // span #include <cmath> // sqrt, sin, cos, tan, asin, acos, atan, atan2 #include <complex> // 複素数 //#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; //using mint = modint1000000007; using mint = modint998244353; using ll = long long; using ull = unsigned long long; using ld = long double;//80bit 18桁 #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) const int dx[4] = {-1, 0, 1, 0}; const int dy[4] = { 0, 1, 0,-1}; const string DIR="URDL"; const int dx8[8] = {0, 1, 1, 1, 0, -1, -1, -1}; const int dy8[8] = {1, 1, 0, -1, -1, -1, 0, 1}; //INFに3以上を掛ける、またはint(INF)に1以上を足すとオーバーフローする //4611686016279904255 cf: LLONG_MAi=9223372036854775807 //const ll INF = (1ll << 62) - (1ll << 31) - 1ll; int n,x; int main(){ cin>>n; vector<int>a(n); rep(i,n){ cin>>a[i]; a[i]--; } cin>>x; vector<vector<int>>ans(4,vector<int>(4,-1)); int num=0; int s=0,t=0; int val=a[0]; while(ans[s][t]!=a[n-1]){ s=val; t=a[num+1]; int u=a[num+2]; if(ans[s][t]!=-1){ cout<<"No"<<endl; return 0; } ans[s][t]=u; val=u; num++;; if(num==n-1)break; } rep(i,4)rep(j,4){ if(ans[i][j]==-1)ans[i][j]=1; else ans[i][j]++; } ans[3][3]=x; cout<<"Yes"<<endl; rep(i,4){ rep(j,4){ cout<<ans[i][j]<<" "; } cout<<endl; } }