作者至今只有半成品代码,求完整代码,
悬赏一关注。
附半成品代码,可修改:
#include<bits/stdc++.h>
using namespace std;
int n;
struct Node{int num,x,y,ok;}s[5010][5010];
int ans=-1;
//ok 1 可以炸
//ok 2 不能炸
//ok 3 军火库爆炸
void panduan(int abc,int i,int j)
{
if(abc==0)
{
s[i][j].num=0;
s[i][j].ok=1;
}
if(abc==1)
s[i][j].ok=3;
if(abc==2)
{
s[i][j].num=2;
s[i][j].ok=1;
}
if(abc==3)
{
s[i][j].num=5;
s[i][j].ok=1;
}
if(abc==4)
{
s[i][j].num=10;
s[i][j].ok=1;
}
if(abc==5)
{
s[i][j].num=-5;
s[i][j].ok=1;
}
if(abc==6)
{
s[i][j].num=15;
s[i][j].ok=2;
}
}
void boom(int i,int j)//ok 3 执行
{
ans+=s[i-1][j-1].num+s[i-1][j].num+s[i-1][j+1].num+s[i][j-1].num+s[i][j].num+s[i][j+1].num+s[i+1][j-1].num+s[i+1][j].num+s[i+1][j+1].num;
s[i-1][j-1].num=0;
s[i-1][j].num=0;
s[i-1][j+1].num=0;
s[i][j-1].num=0;
s[i][j].num=0;
s[i][j+1].num=0;
s[i+1][j-1].num=0;
s[i+1][j].num=0;
s[i+1][j+1].num=0;
if(s[i-1][j-1].ok==3)
boom(i-1,j-1);
if(s[i-1][j].ok==3)
boom(i-1,j);
if(s[i-1][j+1].ok==3)
boom(i-1,j+1);
if(s[i][j-1].ok==3)
boom(i,j-1);
if(s[i][j+1].ok==3)
boom(i,j+1);
if(s[i+1][j-1].ok==3)
boom(i+1,j-1);
if(s[i+1][j].ok==3)
boom(i+1,j);
if(s[i+1][j+1].ok==3)
boom(i+1,j+1);
}
int main()
{
cin>>n;
int abc;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;++j)
{
cin>>abc;
panduan(abc,i,j);
s[i][j].x=i;
s[i][j].y=j;
}
}
int x,y;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
if(ans<s[i-1][j-1].num+s[i-1][j].num+s[i-1][j+1].num+s[i][j-1].num+s[i][j].num+s[i][j+1].num+s[i+1][j-1].num+s[i+1][j].num+s[i+1][j+1].num&&s[i][j].ok!=2)
{
ans=s[i-1][j-1].num+s[i-1][j].num+s[i-1][j+1].num+s[i][j-1].num+s[i][j].num+s[i][j+1].num+s[i+1][j-1].num+s[i+1][j].num+s[i+1][j+1].num;
s[i-1][j-1].num=0;
s[i-1][j].num=0;
s[i-1][j+1].num=0;
s[i][j-1].num=0;
s[i][j].num=0;
s[i][j+1].num=0;
s[i+1][j-1].num=0;
s[i+1][j].num=0;
s[i+1][j+1].num=0;
x=i;y=j;
if(s[i-1][j-1].ok==3)
boom(i-1,j-1);
if(s[i-1][j].ok==3)
boom(i-1,j);
if(s[i-1][j+1].ok==3)
boom(i-1,j+1);
if(s[i][j-1].ok==3)
boom(i,j-1);
if(s[i][j+1].ok==3)
boom(i,j+1);
if(s[i+1][j-1].ok==3)
boom(i+1,j-1);
if(s[i+1][j].ok==3)
boom(i+1,j);
if(s[i+1][j+1].ok==3)
boom(i+1,j+1);
}
}
}
cout<<"("<<x<<","<<y<<")"<<endl;
cout<<ans;
return 0;
}