結果
問題 | No.1974 2x2 Flipper |
ユーザー |
![]() |
提出日時 | 2022-06-10 22:41:08 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 72 ms / 2,000 ms |
コード長 | 3,881 bytes |
コンパイル時間 | 1,301 ms |
コンパイル使用メモリ | 109,800 KB |
最終ジャッジ日時 | 2025-01-29 20:08:34 |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 25 |
ソースコード
#include<iostream>#include<vector>#include<numeric>#include<set>#include<deque>#include<algorithm>#include<queue>#include<math.h>#include<tuple>#include<functional>#include<limits>#include<map>#include<stack>#include<string>#include<stdio.h>#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define Rep(i,a,n) for(int i=(int) a;i<(int) n;i++)#define ALL(a) a.begin(),a.end()#define Upper(a,n) upper_bound(((vector<ll>)a).begin(), (a).end(),(int) n) - a.begin();#define Lower(a,n) lower_bound(((vector<ll>)a).begin(), (a).end(),(int) n) - a.begin();using namespace std;using ll = long long;using ld = long double;typedef pair<ll, ll> PLL;typedef pair<int, int> PII;long long INF = 9223372036854775807;int dx[4] = { 0,1,0,-1 }; int dy[4] = { 1,0,-1,0 };string EIKO = "abcdefghijklmnopqrstuvwxyz";template<typename T>T gcd(T a, T b) {if (a % b == 0) {return b;}else {return gcd(b, a % b);}}ll Pow(ll a, ll n) {if (n == 0) return 1;if (n == 1) return a;if (n % 2 == 1) return (a * Pow(a, n - 1));ll t = Pow(a, n / 2);return (t * t);}ll U = Pow(10, 9) + 7;template<typename T>ll kuraiwa(T n) {int x = 0; ll y = 0;while (n != 0){y += (n % 10);n /= 10;x++;}return y;}template<typename T>long long modPow(T a, T n, T p) {if (n == 0) return 1;if (n == 1) return a % p;if (n % 2 == 1) return (a * modPow(a, n - 1, p)) % p;long long t = modPow(a, n / 2, p);return (t * t) % p;}template<typename T>vector<int> bittify(T n) {vector<int> a;while (n != 0) {int s = n % 2;a.push_back(s);n /= 2;}return a;}template<typename T>ll sinsuu(T xyz, T yzx, T abc) {ll b = 0, h = 0;while (abc != 0) {int g = abc % 10;abc /= 10;b += g * Pow(xyz, h);h++;}if (yzx == 10) {return b;}ll c = 0; h = 0;while (b != 0) {c += (b % yzx) * Pow(10, h);h++;}return c;}template<typename T>bool sosuu(T x) {for (int i = 2; i * i <= x;i++) {if (x % i == 0)return false;}return true;}template<typename T>vector<ll> bunnkai(T x) {vector<ll> a;ll n = 2;while (x != 1) {while (x % n == 0) {a.push_back(n);x /= n;if (x == 1)break;}if (n >= sqrt(x))break;n++;}if (x != 1)a.push_back(x);return a;}template<typename T>vector<ll> yakusuu(T x) {vector<ll> a;for (ll i = 1; i * i <= x; i++) {if (x % i == 0) {a.push_back(i);if (i != x / i) {a.push_back(x / i);}}}sort(ALL(a));return a;}template<typename T>unsigned int factorial(T n) {unsigned int ans;ans = 1;for (unsigned int i = 2; i <= n; i++) {ans *= i;}return ans;}int main() {int h, w; cin >> h >> w;if (h == 1 or w == 1) {cout << 0 << endl;rep(i, h) {rep(j, w) {cout << 0;if (j == w - 1)cout << endl;elsecout << ' ';}}}else {if (h % 2 == 0 and w % 2 == 0) {cout << h * w << endl;rep(i, h) {rep(j, w) {cout << 1;if (j == w - 1)cout << endl;elsecout << ' ';}}}if (h % 2 == 0 and w%2==1) {cout << h * (w - 1) << endl;rep(i, h) {rep(j, w) {if (j == 0)cout << 0;else {cout << 1;}if (j == w - 1)cout << endl;elsecout << ' ';}}}if (h%2==1 and w % 2 == 0) {cout << (h - 1) * w << endl;rep(i, h) {rep(j, w) {if (i == 0)cout << 0;elsecout << 1;if (j == w - 1)cout << endl;elsecout << ' ';}}}if(h%2==1 and w%2==1) {cout << h*w-max(h,w) << endl;rep(i, h) {rep(j, w) {if ((i==0 and j==0) or(i-j==1 and (i+j)%4==3) or(j-i==1 and (i+j)%4==3) or (h>w and j==0 and i>=w) or (h<w and i==0 and j>=h))cout << 0;elsecout << 1;if (j == w - 1)cout << endl;elsecout << ' ';}}}}}