QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#198255 | #5509. Kooky Tic-Tac-Toe | grass8cow# | AC ✓ | 29ms | 3744kb | C++14 | 1.6kb | 2023-10-03 11:06:15 | 2023-10-03 11:06:16 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
string s[6],t[6];
int n,k;
#define pb push_back
void print(int x){printf("%d %d\n",x/n+1,x%n+1);}
bool chk(){
for(int i=0;i<n;i++)for(int j=0;j<n;j++)if(t[i][j]!='.'){
bool fl=1;
for(int z=0;z<k;z++)if(i+z<n&&j+z<n)fl&=(t[i][j]==t[i+z][j+z]);else fl=0;
if(fl)return 0;fl=1;
for(int z=0;z<k;z++)if(i+z<n&&j-z>=0)fl&=(t[i][j]==t[i+z][j-z]);else fl=0;
if(fl)return 0;fl=1;
for(int z=0;z<k;z++)if(i+z<n)fl&=(t[i][j]==t[i+z][j]);else fl=0;
if(fl)return 0;fl=1;
for(int z=0;z<k;z++)if(j+z<n)fl&=(t[i][j]==t[i][j+z]);else fl=0;
if(fl)return 0;
}
bool fl=1;
for(int i=0;i<n;i++)for(int j=0;j<n;j++)fl&=(t[i][j]!='.');
if(fl)return 0;
return 1;
}
void sol(){
cin>>n>>k;
for(int i=0;i<n;i++)cin>>s[i];
int t1=0,t2=0;
for(int i=0;i<n;i++)for(int j=0;j<n;j++){
t1+=(s[i][j]=='x');
t2+=(s[i][j]=='o');
t[i][j]=s[i][j];
}
if(abs(t1-t2)>1||chk()){puts("NIE");return;}
for(int i=0;i<n;i++)for(int j=0;j<n;j++)if(s[i][j]!='.'){
if(s[i][j]=='x'&&t1-t2!=-1||s[i][j]=='o'&&t1-t2!=1){
t[i][j]='.';
if(chk()){
puts("TAK");
vector<int>p1,p2;
for(int x=0;x<n;x++)for(int y=0;y<n;y++){
if(t[x][y]=='x')p1.pb(x*n+y);
if(t[x][y]=='o')p2.pb(x*n+y);
}
if(s[i][j]=='x')p1.pb(i*n+j);
else p2.pb(i*n+j);
if(p1.size()<p2.size())swap(p1,p2);
if(s[i][j]=='x'&&p1.size()==p2.size())swap(p1,p2);
for(int i=0;i<(int)p1.size();i++){
print(p1[i]);
if(i<(int)p2.size())print(p2[i]);
}
return;
}
}
t[i][j]=s[i][j];
}
puts("NIE");
}
int main(){
int T;
cin>>T;while(T--)sol();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3736kb
input:
7 3 3 x.o xxx o.o 4 3 xx.x ...o ..o. .o.. 3 3 xoo oxx xoo 3 2 xoo oxx xoo 3 3 xox .o. xox 3 2 xo. ..x xo. 3 3 x.. .x. ..x
output:
TAK 1 1 1 3 2 2 3 1 2 3 3 3 2 1 TAK 1 1 3 3 1 2 4 2 1 4 2 4 TAK 1 3 1 1 2 1 2 2 3 2 2 3 3 3 3 1 1 2 NIE NIE NIE NIE
result:
ok correct (7 test cases)
Test #2:
score: 0
Accepted
time: 14ms
memory: 3740kb
input:
10000 3 3 x.o xxx o.o 3 3 xoo oxx xoo 3 2 xoo oxx xoo 3 3 xox .o. xox 3 2 xo. ..x xo. 3 2 oox .xo o.x 5 5 xxx.. xxo.x xoo.. xxxox .oooo 3 3 xxx .o. oo. 3 2 x.o xo. ..o 3 2 ..x xxo .o. 3 3 xxo o.. oxo 3 2 oox ..x ... 3 3 xxo ... .ox 3 3 .xo ... oox 3 3 .x. xo. o.o 3 2 o.. xxo .ox 3 2 x.x xoo x.o 3 2 ...
output:
TAK 1 1 1 3 2 2 3 1 2 3 3 3 2 1 TAK 1 3 1 1 2 1 2 2 3 2 2 3 3 3 3 1 1 2 NIE NIE NIE NIE NIE TAK 2 2 1 2 3 1 1 3 3 2 1 1 NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE TAK 1 2 1 1 1 3 1 4 2 3 2 2 2 4 4 2 3 1 4 3 3 2 4 1 NIE NIE NIE NIE NIE TAK 2 1 1 1 2 3 1 3 2 4 1 4 3 1 2 2 3 3 3 2 ...
result:
ok correct (10000 test cases)
Test #3:
score: 0
Accepted
time: 29ms
memory: 3744kb
input:
10000 6 4 x.xx.o xo.o.x ooox.o o..xo. ..xxxo o.oxx. 6 5 oooxxx oxoxxo xoooxo xoxxxx xooxox xoxxxx 6 3 o.x.x. oo.o.x xx.oo. .x.xx. ooxo.. .xxo.. 6 6 xoo..o o.xx.x oooooo xx.x.. o..xx. ...xxx 6 5 xooxoo ooxxoo xxooxx oxooxx oxoxxx xxoxoo 6 5 xoxxxo ooooxo ooxoxx oxxoox xxxxox ooooxo 6 5 o....o .ox.oo ...
output:
TAK 1 6 1 1 2 2 1 3 2 4 1 4 3 1 2 1 3 2 2 6 3 3 4 4 3 6 5 3 4 1 5 4 4 5 5 5 5 6 6 4 6 1 6 5 6 3 3 4 NIE TAK 1 3 1 1 1 5 2 1 2 6 2 2 3 1 2 4 3 2 3 4 4 2 3 5 4 4 5 1 4 5 5 2 6 2 5 4 6 3 6 4 5 3 NIE TAK 1 2 1 4 1 3 2 3 1 5 2 4 1 6 3 1 2 1 3 2 2 2 3 5 2 5 3 6 2 6 4 2 3 3 4 5 3 4 4 6 4 1 5 2 4 3 5 4 4 4 ...
result:
ok correct (10000 test cases)