結果
問題 | No.2112 All 2x2 are Equal |
ユーザー |
![]() |
提出日時 | 2022-10-28 23:07:39 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 94 ms / 2,000 ms |
コード長 | 2,568 bytes |
コンパイル時間 | 2,513 ms |
コンパイル使用メモリ | 219,712 KB |
最終ジャッジ日時 | 2025-02-08 14:57:52 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 34 |
ソースコード
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; using ll = long long; using P = pair<ll, ll>; template <class T> using V = vector<T>; #define fi first #define se second #define all(v) (v).begin(), (v).end() const ll inf = (1e18); // const ll mod=998244353; const ll mod = 1000000007; const vector<int> dy = {-1, 0, 1, 0}, dx = {0, -1, 0, 1}; ll GCD(ll a, ll b) { return b ? GCD(b, a % b) : a; } ll LCM(ll c, ll d) { return c / GCD(c, d) * d; } struct __INIT { __INIT() { cin.tie(0); ios::sync_with_stdio(false); cout << fixed << setprecision(20); } } __init; template <class T> bool chmax(T &a, const T &b) { if (a < b) { a = b; return 1; } return 0; } template <class T> bool chmin(T &a, const T &b) { if (a > b) { a = b; return 1; } return 0; } template <class T> void debag(const vector<T> &a) { cerr << "debag :"; for (auto v : a) cerr << v << " "; cerr << "\n"; } template <class T> void print(const vector<T> &a) { for (auto v : a) cout << v << " "; cout << "\n"; } vector<bool> prime; void make(int num) { prime.resize(num, true); prime[0] = false; for (int i = 0; i * i < num; i++) { if (prime[i]) { for (int j = 2; (i + 1) * j <= num; j++) { prime[(i + 1) * j - 1] = false; } } } } int main() { int h, n; cin >> h >> n; V<int> d; for (int i = 1; i <= h * n; i++) { d.emplace_back(i); } int id1 = 0, id2 = h * n - 1; cout << "Yes" << "\n"; for (int i = 0; i < h; i++) { if (i % 2 == 0) { int sz1 = (n + 1) / 2; int sz2 = n / 2; V<int> aa, bb; for (int j = 0; j < sz1; j++) { aa.emplace_back(d[id1++]); } for (int j = 0; j < sz2; j++) { bb.emplace_back(d[id2--]); } for (int j = 0; j < n; j++) { if (j % 2 == 0) { cout << aa[j / 2]; } else { cout << bb[j / 2]; } if (j == n - 1) cout << "\n"; else cout << " "; } } else { int sz1 = n / 2; int sz2 = (n + 1) / 2; V<int> aa, bb; for (int j = 0; j < sz1; j++) { aa.emplace_back(d[id1++]); } for (int j = 0; j < sz2; j++) { bb.emplace_back(d[id2--]); } // reverse(all(aa)); // reverse(all(bb)); for (int j = 0; j < n; j++) { if (j % 2 == 0) { cout << bb[j / 2]; } else { cout << aa[j / 2]; } if (j == n - 1) cout << "\n"; else cout << " "; } } } }