QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#206360 | #3836. So I'll Max Out My Constructive Algorithm Skills | shennc | WA | 1ms | 3660kb | C++14 | 1.1kb | 2023-10-07 20:08:17 | 2023-10-07 20:08:18 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
int n;
int m[66][66];
int st[66][66] = {0};
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
void bfs(int x,int y){
queue<pii>q;
q.push({x,y});
st[x][y] = 1;
int num = -1;
auto check = [](int x,int y){
if(x<0 ||y<0)return false;
if(x>=n || y>=n)return false;
if(st[x][y])return false;
return true;
};
while(!q.empty()){
pii u = q.front();
cout<<m[u.first][u.second] << (++num <= n ?" " :"\n");
q.pop();
int vx = -1,vy = -1,tmp = 0;
for(int i = 0;i<4;i++){
int tx = u.first + dx[i];
int ty = u.second + dy[i];
if(check(tx,ty) && m[tx][ty]>tmp){
vx = tx;
vy = ty;
}
}
if(vx!=-1 && vy!=-1){
st[vx][vy] = 1;
q.push({vx,vy});
}
}
}
void solve(){
cin>>n;
int x1 = -1,x2= -1;
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
st[i][j] = 0;
cin>>m[i][j];
if(m[i][j] == n*n){
x1 = i;
x2 = j;
}
}
}
bfs(x1,x2);
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
int t;cin>>t;
while(t--)
solve();
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3644kb
input:
1 2 4 3 2 1
output:
4 3 1 2
result:
ok correct
Test #2:
score: -100
Wrong Answer
time: 1ms
memory: 3660kb
input:
100 9 30 75 35 51 25 19 76 65 62 11 56 63 60 77 48 28 26 74 16 44 46 41 17 8 66 61 42 29 7 43 38 40 31 27 10 39 52 23 58 80 50 20 33 69 47 79 1 5 49 22 37 71 18 70 54 72 4 64 55 34 12 6 15 14 53 45 13 32 59 73 57 81 36 3 78 24 2 68 9 67 21 7 11 28 2 19 9 41 24 17 34 5 10 42 18 47 33 35 22 8 49 1 29 ...
output:
81 57 73 59 32 13 45 53 14 54 72 4 64 55 34 12 6 15 70 18 71 37 22 49 5 1 79 52 23 58 80 50 20 33 69 47 39 10 27 31 40 38 43 7 29 16 44 46 41 17 8 66 61 42 74 26 28 48 77 60 63 56 11 30 75 35 51 25 19 76 65 62 49 8 22 35 33 17 34 5 10 42 18 47 24 41 9 19 2 28 11 9 1 6 5 8 7 3 4 2 81 62 59 79 19 13 8...
result:
wrong answer [case 1] Duplicate number exists