Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

MAX大点就可以AC,题目说是小于20.。真晕

Posted by jasonnk at 2008-06-24 03:30:15 on Problem 1979
#include <iostream>
using namespace std;

const int MAX=101;

int map[MAX][MAX];
int couter;

void getnum(int i,int j){
	map[i][j]=0;
	couter++;
	if(map[i-1][j]==1){map[i-1][j]=0;getnum(i-1,j);}
	if(map[i+1][j]==1){map[i+1][j]=0;getnum(i+1,j);}
	if(map[i][j-1]==1){map[i][j-1]=0;getnum(i,j-1);}
	if(map[i][j+1]==1){map[i][j+1]=0;getnum(i,j+1);}
	return;
}

int main(){
	int w,h;
	int x,y;
	char t;
	
	while((cin>>w>>h)&&w&&h){
		for(int i=0;i<MAX;i++){for(int j=0;j<MAX;j++){map[i][j] = 0;}}
		couter = 0;
		x=y=0;
		for(int i=0;i<h;i++){
			for(int j=0;j<w;j++){
				cin >> t;
				if(t=='.'){map[i][j] = 1;}
				if(t=='#'){map[i][j] = 0;}
				if(t=='@'){map[i][j] = 1;y=i;x=j;}
			}
		}
		getnum(y,x);
		cout << couter << endl;
	}
	
	
	return 1;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator