結果
| 問題 | No.3596 Queen Score Attack 1 |
| コンテスト | |
| ユーザー |
mint
|
| 提出日時 | 2026-10-21 17:13:38 |
| 言語 | C++23(gcc16) (gcc 16.2.0 + boost 1.92.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 4 ms / 2,000 ms |
| + 965µs | |
| コード長 | 1,812 bytes |
| 記録 | |
| コンパイル時間 | 3,371 ms |
| コンパイル使用メモリ | 360,112 KB |
| 実行使用メモリ | 9,908 KB |
| 最終ジャッジ日時 | 2026-10-21 17:13:46 |
| 合計ジャッジ時間 | 6,063 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge5_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 31 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t; cin >> t;
while(t--){
int h, w; cin >> h >> w;
vector<vector<int>> a(h, vector<int>(w));
for(auto &&ee: a){
for(auto &&e: ee) cin >> e;
}
bool b = false;
for(int i = 0; i < h; ++i){
for(int j = 0; j < w; ++j){
//縦
for(int k = 0; k < h; ++k){
if(i == k) continue;
if(a[i][j] + a[k][j]> 0){
cout << "infinite" << '\n';
b = true;
break;
}
}
if(b) break;
//横
for(int k = 0; k < w; ++k){
if(j == k) continue;
if(a[i][j] + a[i][k] > 0){
cout << "infinite" << '\n';
b = true;
break;
}
}
if(b) break;
//左上から斜め右下
int c = 1;
while(i+c<h && j+c<w){
if(a[i][j] + a[i+c][j+c] > 0){
cout << "infinite" << '\n';
b = true;
break;
}
++c;
}
if(b) break;
c = 1;
while(i-c>=0 && j-c>=0){
if(a[i][j] + a[i-c][j-c] > 0){
cout << "infinite" << '\n';
b = true;
break;
}
++c;
}
if(b) break;
//右上から斜め左下
c = 1;
while(i+c<h && j-c>=0){
if(a[i][j] + a[i+c][j-c] > 0){
cout << "infinite" << '\n';
b = true;
break;
}
++c;
}
if(b) break;
c = 1;
while(i-c>=0 && j+c<w){
if(a[i][j] + a[i-c][j+c] > 0){
cout << "infinite" << '\n';
b = true;
break;
}
++c;
}
if(b) break;
}
if(b) break;
}
if(!b) cout << "finite" << '\n';
}
return 0;
}
mint