社区讨论
考试时候样例全过,回家打一遍倒是错了
P11228[CSP-J 2024] 地图探险参与者 5已保存回复 29
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 28 条
- 当前快照
- 1 份
- 快照标识符
- @m2q5e3y5
- 此快照首次捕获于
- 2024/10/26 20:39 去年
- 此快照最后确认于
- 2024/10/26 21:18 去年
CPP
#include <iostream>
using namespace std;
int main(){
int T;
cin>>T;
for (int i=0;i<T;i++){
int n,m,k,c=1;
cin>>n>>m>>k;
int x,y,d;
cin>>x>>y>>d;
char arr[n+1][m+1];
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
cin>>arr[i][j];
}
}
arr[x][y]='1';
for (int k1=0;k1<k;k1++){
if (d==0){
if (arr[x][y+1]=='.'){
c+=1;
y+=1;
arr[x][y]='1';
}
else if (arr[x][y+1]=='1'){
y+=1;
}
else{
d+=1;
d%=4;
}
}
else if (d==1){
if (arr[x+1][y]=='.'){
c+=1;
x+=1;
arr[x][y]='1';
}
else if (arr[x+1][y]=='1'){
x+=1;
}
else{
d+=1;
d%=4;
}
}
else if (d==2){
if (arr[x][y-1]=='.'){
c+=1;
y-=1;
arr[x][y]='1';
}
else if (arr[x][y-1]=='1'){
y-=1;
}
else{
d+=1;
d%=4;
}
}
else if (d==3){
if (arr[x-1][y]=='.'){
c+=1;
x-=1;
arr[x][y]='1';
}
else if (arr[x-1][y]=='1'){
x-=1;
}
else{
d+=1;
d%=4;
}
}
//cout<<x<<" "<<y<<" "<<c<<endl;
}
cout<<c<<endl;
}
}
回复
共 29 条回复,欢迎继续交流。
正在加载回复...