Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
121369 | 周震东 | 计算机病毒 | C++ | 通过 | 100 | 0 MS | 320 KB | 1031 | 2024-01-21 17:08:18 |
#include<bits/stdc++.h> using namespace std; int n,s,ans; char Map[109][109]; int dx[4]={-1,0,0,1}; int dy[4]={0,-1,1,0}; struct Info { int x,y,t; }; int Judge(int x,int y) { return x>=1&&x<=n&&y>=1&&y<=n&&Map[x][y]=='*'; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); queue<Info> q; cin>>n; for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { cin>>Map[i][j]; if (Map[i][j]=='@') { q.push((Info){i,j,0}); } } } cin>>s; while(!q.empty()&&q.front().t<s) { Info Nex,Cur=q.front(); q.pop(); for (int i=0;i<4;i++) { Nex.t=Cur.t+1; Nex.x=Cur.x+dx[i]; Nex.y=Cur.y+dy[i]; if (Judge(Nex.x,Nex.y)) { Map[Nex.x][Nex.y]='@'; q.push(Nex); } } } for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { if (Map[i][j]=='@') { ans++; } } } cout<<ans; return 0; }