| ||||||||||
| 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 | |||||||||
无需考虑将积木放回原位时原位被占的情况,因为没有任何一个操作可以把积木放在空的位置上 我的代码附上#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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator