結果
| 問題 |
No.923 オセロきりきざむたん
|
| コンテスト | |
| ユーザー |
LayCurse
|
| 提出日時 | 2019-11-08 21:42:16 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 6 ms / 2,000 ms |
| コード長 | 2,514 bytes |
| コンパイル時間 | 2,401 ms |
| コンパイル使用メモリ | 211,052 KB |
| 最終ジャッジ日時 | 2025-01-08 02:32:36 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 84 |
ソースコード
#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
void *wmem;
char memarr[96000000];
inline void rd(int &x){
int k;
int m=0;
x=0;
for(;;){
k = getchar_unlocked();
if(k=='-'){
m=1;
break;
}
if('0'<=k&&k<='9'){
x=k-'0';
break;
}
}
for(;;){
k = getchar_unlocked();
if(k<'0'||k>'9'){
break;
}
x=x*10+k-'0';
}
if(m){
x=-x;
}
}
inline int rd(char c[]){
int i;
int sz = 0;
for(;;){
i = getchar_unlocked();
if(i!=' '&&i!='\n'&&i!='\r'&&i!='\t'&&i!=EOF){
break;
}
}
c[sz++] = i;
for(;;){
i = getchar_unlocked();
if(i==' '||i=='\n'||i=='\r'||i=='\t'||i==EOF){
break;
}
c[sz++] = i;
}
c[sz]='\0';
return sz;
}
inline void rd(string &x){
char *buf = (char *)wmem;
rd(buf);
x = buf;
}
inline void wt_L(char a){
putchar_unlocked(a);
}
inline void wt_L(const char c[]){
int i=0;
for(i=0;c[i]!='\0';i++){
putchar_unlocked(c[i]);
}
}
int H;
int W;
string A[100000];
int main(){
int i;
wmem = memarr;
int cnt[2] = {};
int fg[2] = {};
rd(H);
rd(W);
{
int Lj4PdHRW;
for(Lj4PdHRW=(0);Lj4PdHRW<(H);Lj4PdHRW++){
rd(A[Lj4PdHRW]);
}
}
for(i=(0);i<(H);i++){
int j;
for(j=(0);j<(W);j++){
cnt[A[i][j]-='0']++;
}
}
if(H==1 || W==1){
if(cnt[0]==0 || cnt[1]==0){
wt_L("NO");
wt_L('\n');
}
else{
wt_L("YES");
wt_L('\n');
}
return 0;
}
for(i=(0);i<(H);i++){
int j;
cnt[0] = cnt[1] = 0;
for(j=(0);j<(W);j++){
cnt[A[i][j]]++;
}
if(cnt[0]==0 || cnt[1]==0){
fg[0]++;
}
}
for(i=(0);i<(W);i++){
int j;
cnt[0] = cnt[1] = 0;
for(j=(0);j<(H);j++){
cnt[A[j][i]]++;
}
if(cnt[0]==0 || cnt[1]==0){
fg[1]++;
}
}
if(fg[0]&&fg[1]){
wt_L("NO");
wt_L('\n');
}
else{
wt_L("YES");
wt_L('\n');
}
return 0;
}
// cLay varsion 20191108-1
// --- original code ---
// int H, W;
// string A[1d5];
// {
// int cnt[2] = {}, fg[2] = {};
// rd(H,W,A(H));
// rep(i,H) rep(j,W) cnt[A[i][j]-='0']++;
// if(H==1 || W==1) wt( if[cnt[0]==0 || cnt[1]==0, "NO", "YES"] ), return 0;
// rep(i,H){
// cnt[0] = cnt[1] = 0;
// rep(j,W) cnt[A[i][j]]++;
// if(cnt[0]==0 || cnt[1]==0) fg[0]++;
// }
// rep(i,W){
// cnt[0] = cnt[1] = 0;
// rep(j,H) cnt[A[j][i]]++;
// if(cnt[0]==0 || cnt[1]==0) fg[1]++;
// }
// wt(if[fg[0]&&fg[1], "NO", "YES"]);
// }
LayCurse