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

无需考虑将积木放回原位时原位被占的情况,因为没有任何一个操作可以把积木放在空的位置上 我的代码附上

Posted by 201101050424 at 2012-01-07 22:09:33 on Problem 1208
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
	int n;
	int block[30][30];
	int a,b;
	char command[20];
	char command1[10];
	char command2[10];
	int add1[2];
	int add2[2];
	int top[30];
	int i,j,k,l;
	freopen("input.txt","r",stdin);
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		block[i][1]=i;
		top[i]=1;
	}
	scanf("%s",command1);
	while(command1[0]!='q')
	{
		scanf("%d",&a);
		scanf("%s",command2);
		scanf("%d",&b);
		if(a==b)
		{
                        scanf("%s",command1);
			continue;
		}
		if(command1[0]=='m'&&command2[1]=='n')
		{
				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==a)
							{
								add1[0]=i;
								add1[1]=j;
							}
						}
					}
				}
				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==b)
							{
								add2[0]=i;
								add2[1]=j;
							}
						}
					}
				}

			if(add1[0]==add2[0])
			{
				scanf("%s",command1);continue;
			}
			else
			{
				for(i=add1[1]+1;i<=top[add1[0]];i++)
				{
					top[block[add1[0]][i]]=1;
					block[block[add1[0]][i]][1]=block[add1[0]][i];
				}
				top[add1[0]]=add1[1];
				for(i=add2[1]+1;i<=top[add2[0]];i++)
				{
					top[block[add2[0]][i]]=1;
					block[block[add2[0]][i]][1]=block[add2[0]][i];
				}
				top[add2[0]]=add2[1];
				top[add2[0]]++;
				block[add2[0]][top[add2[0]]]=block[add1[0]][add1[1]];
				top[add1[0]]--;
			}
		}
		else if(command1[0]=='m'&&command2[1]=='v')
		{
				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==a)
							{
								add1[0]=i;
								add1[1]=j;
							}
						}
					}
				}
				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==b)
							{
								add2[0]=i;
								add2[1]=j;
							}
						}
					}
				}
			if(add1[0]==add2[0])
			{
				scanf("%s",command1);continue;
			}
			else
			{
				for(i=add1[1]+1;i<=top[add1[0]];i++)
				{
					top[block[add1[0]][i]]=1;
					block[block[add1[0]][i]][1]=block[add1[0]][i];
				}
				top[add1[0]]=add1[1];
				top[add2[0]]++;
				block[add2[0]][top[add2[0]]]=block[add1[0]][add1[1]];
				top[add1[0]]--;
			}
		}
		else if(command1[0]=='p'&&command2[1]=='n')
		{
				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==a)
							{
								add1[0]=i;
								add1[1]=j;
							}
						}
					}
				}
				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==b)
							{
								add2[0]=i;
								add2[1]=j;
							}
						}
					}
				}
			if(add1[0]==add2[0])
			{
				scanf("%s",command1);continue;
			}
			else
			{
				for(i=add2[1]+1;i<=top[add2[0]];i++)
				{
					top[block[add2[0]][i]]=1;
					block[block[add2[0]][i]][1]=block[add2[0]][i];
				}
				top[add2[0]]=add2[1];
				for(i=add1[1];i<=top[add1[0]];i++)
				{
					top[add2[0]]++;
					block[add2[0]][top[add2[0]]]=block[add1[0]][i];
				}
				top[add1[0]]=add1[1]-1;
			}
		}
		else if(command1[0]=='p'&&command2[1]=='v')
		{

				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==a)
							{
								add1[0]=i;
								add1[1]=j;
							}
						}
					}
				}
				for(i=0;i<n;i++)
				{
					if(top[i]==0)
					{
						continue;
					}
					else
					{
						for(j=1;j<=top[i];j++)
						{
							if(block[i][j]==b)
							{
								add2[0]=i;
								add2[1]=j;
							}
						}
					}
				}
			if(add1[0]==add2[0])
			{
				scanf("%s",command1);continue;
			}
			else
			{
				for(i=add1[1];i<=top[add1[0]];i++)
				{
					top[add2[0]]++;
					block[add2[0]][top[add2[0]]]=block[add1[0]][i];
				}
				top[add1[0]]=add1[1]-1;
			}
		}
		scanf("%s",command1);
	}
	for(i=0;i<n;i++)
	{
		printf("%d:",i);
		for(j=1;j<=top[i];j++)
		{
			printf(" %d",block[i][j]);
		}
		printf("\n");
	}
}






		


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