結果
| 問題 |
No.1056 2D Lamps
|
| コンテスト | |
| ユーザー |
kriii
|
| 提出日時 | 2020-05-15 22:43:21 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,157 bytes |
| コンパイル時間 | 791 ms |
| コンパイル使用メモリ | 69,500 KB |
| 最終ジャッジ日時 | 2025-01-10 11:56:21 |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | WA * 4 TLE * 10 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:16:34: warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘char (*)[202]’ [-Wformat=]
16 | scanf ("%s", &B[i]);
| ~^ ~~~~~
| | |
| | char (*)[202]
| char*
main.cpp:12:15: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
12 | scanf ("%d %d", &N, &M);
| ~~~~~~^~~~~~~~~~~~~~~~~
main.cpp:16:31: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
16 | scanf ("%s", &B[i]);
| ~~~~~~^~~~~~~~~~~~~
ソースコード
#include <stdio.h>
#include <bitset>
#include <vector>
using namespace std;
bitset<1344> wow[40040];
bitset<1000> ev[202];
int N, M; char B[202][202];
int main()
{
scanf ("%d %d", &N, &M);
for (int k = 0; k < M; k++){
int C = 0, L = N + N + (N - 1) * 2 + 1 + (N - 1) * 2 + 1;
for (int i = 0; i < N; i++){
scanf ("%s", &B[i]);
for (int j = 0; j < N; j++){
wow[C] = bitset<1344>();
wow[C][i] = wow[C][N + j] = wow[C][N + N + i + j] = wow[C][N + N + (N - 1) * 2 + 1 + (N - 1) - i + j] = 1;
if (B[i][j] == '#') wow[C][L] = 1;
C++;
}
}
bitset<1344> lose; vector<int> ls;
for (int i = 0, j = 0; i < C && j < L; j++){
for (int k = i; k < C; k++) if (wow[k][j]){
swap(wow[i], wow[k]);
break;
}
if (!wow[i][j]){
lose[j] = 1;
ls.push_back(j);
continue;
}
for (int k = 0; k < C; k++) if (k != i && wow[k][j]) wow[k] ^= wow[i];
i++;
}
for (int i = 0, c = 0; i < C; i++) if (wow[i].count() == wow[i][L]){
ev[k][c++] = wow[i][L];
}
}
for (int i = 0; i < M; i++, puts("")) for (int j = i + 1; j < M; j++){
int g = (ev[i] ^ ev[j]).count() == 0;
printf ("%d", g);
}
return 0;
}
kriii