hdu 2599 The Dreadful Seven 模拟水题

The Dreadful Seven

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 265    Accepted Submission(s): 101


Problem Description
Super Mario is studying how to use a mysterious Power Square. The Power Square is n×n with integer values between 0 and n2-1.
A number y is a neighbor of another number x in the Power Square if y is directly above or below x, or directly to the left or right of x. Rosalina asks Super Mario to find all the numbers in the Power Square that are neighbors of the number 7, since she can tell that those numbers are quite nervous.
”Why are the numbers scared of seven?” Mario asks Rosalina.
”Because seven ate nine!” Rosalina exclaims.
 

Input
Input is a description of of the Power Square, followed by a number of commands. The first line is the size of the Power Square n. You may assume n<=100. The second line contains the n2 values in the Power Square, separated by spaces. Values start from the top left corner and move from left to right, moving down one row to the leftmost position when a row is filled.
Following the Power Square description are a number of commands, with each command on a separate line. Each command begins with the name of the command, followed by any additional command parameters.
There will no more than 100 commands.
 

Output
The command ”SHOW” causes the current state of the Power Square to be displayed in n × n form (each row of n values on a single line, separated by spaces), followed by a blank line.
The command ”NEIGHBORS” is followed by a value x in the Power Square. The values neighboring x are output and displayed on a single line (in the order: above, left, right, and below x), separated by spaces. You may assume that x is always in the Power Square.
 

Sample Input
  
  
3 8 7 6 5 4 3 2 1 0 SHOW NEIGHBORS 7 NEIGHBORS 1 NEIGHBORS 4 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SHOW NEIGHBORS 7 NEIGHBORS 1 NEIGHBORS 8 NEIGHBORS 14
 

Sample Output
  
  
8 7 6 5 4 3 2 1 0 8 6 4 4 2 0 7 5 3 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 6 11 0 2 5 4 9 12 10 13 15
 

Source
 

Recommend
lcy
 
题意:  输入n  再输入n*n的矩阵    输入未知个数的命令
输入SHOW 则输出矩阵  输入  NEIGHBORS m  输出m  上左右下的数字  
 
思路:
本题不难 主要是对于命令的个数未知 我们可以用 字符串输入 判定3种输入的格式 如果不是那2种命令 则输入的是n
具体看代码
by hnust_xiehonghao
 
#include<stdio.h>
#include<string.h>
int map[111][111];
int main()
{
	int n,i,j,m;
	char s[100];
	while(scanf("%s",s)!=EOF)
	{
		if(strcmp(s,"SHOW")==0)
		{
			for(i=1;i<=n;i++)
			{
				for(j=1;j<n;j++)
					printf("%d ",map[i][j]);
				printf("%d\n",map[i][j]);
			}
			printf("\n");
		}
		else  if(strcmp(s,"NEIGHBORS")==0)
		{
			scanf("%d",&m);
			int flag=1;
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
					if(map[i][j]==m) 
					{flag=0;break;}
				if(flag==0) break;

			}
					int out[5],k,cnt=0;
					if(map[i-1][j]!=-1) out[cnt++]=map[i-1][j];
					if(map[i][j-1]!=-1) out[cnt++]=map[i][j-1];
					if(map[i][j+1]!=-1) out[cnt++]=map[i][j+1];
					if(map[i+1][j]!=-1) out[cnt++]=map[i+1][j];
					for(k=0;k<cnt-1;k++)  printf("%d ",out[k]);
					printf("%d\n",out[cnt-1]);
		}
		else
		{
			int k=0;
			n=0;
			while(s[k]!='\0')
			{
				n=n*10+(s[k]-'0');
				k++;
			}
			memset(map,-1,sizeof(map));
			for(i=1;i<=n;i++)
				for(j=1;j<=n;j++)
					scanf("%d",&map[i][j]);	  
		}
	}
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值