Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
我做了这道题,在自己电脑上还没问题,但一提交就Runtime error ,哪位帮忙看一下#include<iostream> using namespace std; struct grid { int sign; int up,down,right,left; }; void ini_map(grid **map,int rows,int cols) { for(int i=0;i<rows;i++) for(int j=0;j<cols;j++) { map[i][j].down=map[i][j].left=map[i][j].right=map[i][j].up=1; map[i][j].sign=0; } } void ini2_map(grid **map,int i,int j,int d ) { if(d==1) { map[i][j].left=0; if((j-1)>0) map[i][j-1].right=0; }else { map[i][j].up=0; if((i-1)>0) map[i-1][j].down=0; } } int proce(grid **map,int rows,int cols,int ele[1000][2],int ele_no,int nth) { int next_ele_no=0; int m=0; int next_ele[1000][2]; for(int i=0;i<ele_no;i++) { if(ele[i][0]==0||ele[i][0]==rows+1||ele[i][1]==0||ele[i][1]==cols+1) { return nth-1; } } for(i=0;i<ele_no;i++) { int row=ele[i][0]; int col=ele[i][1]; if(map[row][col].down==0&&map[row+1][col].sign==0){ map[row+1][col].sign=nth; next_ele[m][0]=row+1; next_ele[m][1]=col; next_ele_no++; m++; } if(map[row][col].up==0&&map[row-1][col].sign==0){ map[row-1][col].sign=nth; next_ele[m][0]=row-1; next_ele[m][1]=col; next_ele_no++; m++; } if(map[row][col].right==0&&map[row][col+1].sign==0){ map[row][col+1].sign=nth; next_ele[m][0]=row; next_ele[m][1]=col+1; next_ele_no++; m++; } if(map[row][col].left==0&&map[row][col-1].sign==0){ map[row][col-1].sign=nth; next_ele[m][0]=row; next_ele[m][1]=col-1; next_ele_no++; m++; } } if(next_ele_no==0) return -1; return proce(map,rows,cols,next_ele,next_ele_no,nth+1); } void main() { int M,N; cin>>M>>N; while(M!=-1&&N!=-1) { int rows,cols; rows=cols=(M-2)/2; grid **map=new grid*[rows+2]; for(int i=0;i<rows+2;i++) { map[i]=new grid[cols+2]; } int i1,j1,d,t; for(i=0;i<M;i++) cin>>j1>>i1>>d>>t; ini_map(map,rows+2,cols+2); for(i=0;i<N;i++) { cin>>j1>>i1>>d; ini2_map(map,i1,j1,d); } float pox,poy; cin>>poy>>pox; int po1=pox,po2=poy; int ele[1000][2]; int ele_no=1; ele[0][0]=po1,ele[0][1]=po2; int nth=1; cout<<proce(map,rows,cols,ele,ele_no,nth); cin>>M>>N; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator