結果
| 問題 |
No.1016 三目並べ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-04-03 22:18:22 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 4 ms / 2,000 ms |
| コード長 | 1,169 bytes |
| コンパイル時間 | 541 ms |
| コンパイル使用メモリ | 65,152 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-03 03:47:57 |
| 合計ジャッジ時間 | 1,130 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 10 |
ソースコード
#include <iostream>
using namespace std;
int main(){
int t;cin>>t;
while(t--){
int n;string s;cin>>n>>s;
int z = 0;
int nw = -1;
for(int i = 0; n > i; i++){
if(s[i]=='o'){
if(nw!=-1){
if(nw%2){
cout << "O" << endl;
z++;
break;
}
}
nw = 0;
}else if(s[i]=='-'){
if(nw!=-1)nw++;
}else{
nw=-1;
}
}
for(int i = 0; n > i; i++){
if(z)break;
if(s[i]=='o'){
if(n!=i+1 && s[i+1]=='o'){
if((i&&s[i-1]!='x')||(n!=i+2&&s[i+2]!='x')){
//cout << i << 1 << endl;
cout << "O" << endl;
z++;
break;
}
}else{
if(0 <= i-1 && i+1 < n){
bool l = true;
for(int j = i-1; i+1 >= j; j++){
if(s[j]=='x'){
l=false;
break;
}
}
if(l && ((i-2>=0&&s[i-2]!='x')||(i+2<n&&s[i+2]!='x'))){
cout << "O" << endl;
z++;
}
}
}
}
}
if(!z){
cout << "X" << endl;
}
}
}