比赛 |
20181002 |
评测结果 |
AAAAAAAAAAAAAA |
题目名称 |
流星雨 |
最终得分 |
100 |
用户昵称 |
梦那边的美好ET |
运行时间 |
0.091 s |
代码语言 |
C++ |
内存使用 |
12.05 MiB |
提交时间 |
2018-10-01 22:24:08 |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int a[501][501],d[900001][3],ld=1,lt=1,f1,f2,f3,n,k=0;
bool bk[501][501],bkw[501][501];
void hhh(int x,int y,int z){
if(x<0||y<0)return;
bkw[x][y]=1;
if(a[x][y]==0)a[x][y]=z;
if(a[x][y]>z)a[x][y]=z;
return;
}
void hs(int x,int y,int t){
if(x<0||y<0)return;
if(bk[x][y]==1||(t>=a[x][y]&&bkw[x][y]!=0))return;
ld+=1;d[ld][0]=x;d[ld][1]=y;d[ld][2]=t;bk[x][y]=1;
if(a[x][y]==0){
k=1;
cout<<d[ld][2];
}
return;
}
int main(){
freopen("meteor.in","r",stdin);
freopen("meteor.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
cin>>f1>>f2>>f3;
hhh(f1,f2,f3);
hhh(f1+1,f2,f3);
hhh(f1,f2+1,f3);
hhh(f1-1,f2,f3);
hhh(f1,f2-1,f3);
}
if(a[0][0]==0){cout<<"0";return 0;}
while(lt<=ld){
hs(d[lt][0]+1,d[lt][1],d[lt][2]+1);if(k==1)return 0;
hs(d[lt][0]-1,d[lt][1],d[lt][2]+1);if(k==1)return 0;
hs(d[lt][0],d[lt][1]+1,d[lt][2]+1);if(k==1)return 0;
hs(d[lt][0],d[lt][1]-1,d[lt][2]+1);if(k==1)return 0;
lt+=1;
}
cout<<"-1";
return 0;
}