您的位置:首页 > 其它

hust A Digital Satire of Digital Age

2015-08-20 15:24 387 查看


好麻烦的一道题:

中间的一个小优化就是讲字母的重量事先打印好,保存到一个数组里面

#include<stdio.h>
#include<string.h>
char map[7][18];
int value[26]={2250,2250,2500,2250,2500,2500,2750,2250,2500,2500,2750,2500,2750,2750,3000,2250,2500,2500,2750,2500,2750,2750,3000,2500,2750,2750};
int Left()
{
int i,j;
int temp=0;
for(i=0;i<8;i++)
{
for(j=0;j<=7;j++)
{
if(map[i][j]>='A'&&map[i][j]<='Z')
{
temp+=value[map[i][j]-'A'];
}
}
}
return temp;
}
int Right()
{
int i,j;
int temp=0;
for(i=0;i<7;i++)
{
for(j=10;j<18;j++)
{
if(map[i][j]>='A'&&map[i][j]<='Z')
{
temp+=value[map[i][j]-'A'];
}
}
}
return temp;
}
int main()
{
int T;
int ans=1;
char tep[20];
int i,j;
int mark=0;
scanf("%d",&T);
getchar();
while(T--)
{
mark=0;
for(i=0;i<7;i++)
{
scanf("%s",tep);
for(j=0;j<18;j++)
{
map[i][j]=tep[j];
if(i==0&&map[i][j]=='/'&&j==3)
mark=1;//左边较轻
if(i==0&&map[i][j]=='/'&&j==13)
mark=2;//右边较轻
}
}
scanf("%s",tep);
int left=Left();
int right=Right();
if(mark==1)//左边轻
{
if(left<right)
{
printf("Case %d:\nThe figure is correct.\n",ans++);
continue;
}
else if(left>right)
{
for(i=6;i>=2;i--)
{
for(j=0;j<=7;j++)
{
map[i][j]=map[i-2][j];
}
}
for(i=0;i<=1;i++)
{
for(j=0;j<=7;j++)
{
map[i][j]='.';
}
}
for(i=0;i<=4;i++)
{
for(j=10;j<18;j++)
{
map[i][j]=map[i+2][j];
}
}
for(i=5;i<=6;i++)
{
for(j=10;j<18;j++)
{
map[i][j]='.';
}
}
}
else
{
for(i=5;i>=1;i--)
{
for(j=0;j<=7;j++)
{
map[i][j]=map[i-1][j];
}
}
for(i=0;i<=0;i++)
{
for(j=0;j<=7;j++)
{
map[i][j]='.';
}
}
for(i=1;i<=5;i++)
{
for(j=10;j<18;j++)
{
map[i][j]=map[i+1][j];
}
}
for(i=6;i<7;i++)
{
for(j=10;j<18;j++)
{
map[i][j]='.';
}
}
}
}
else if(mark==2)//右边轻
{
if(left>right)
{
printf("Case %d:\nThe figure is correct.\n",ans++);
continue;
}
else if(left<right)
{
for(i=6;i>=2;i--)
{
for(j=10;j<18;j++)
{
map[i][j]=map[i-2][j];
}
}
for(i=0;i<=1;i++)
{
for(j=10;j<18;j++)
{
map[i][j]='.';
}
}
for(i=0;i<=4;i++)
{
for(j=0;j<=7;j++)
{
map[i][j]=map[i+2][j];
}
}
for(i=5;i<=6;i++)
{
for(j=0;j<=7;j++)
{
map[i][j]='.';
}
}
}
else
{
for(i=5;i>=1;i--)
{
for(j=10;j<18;j++)
{
map[i][j]=map[i-1][j];
}
}
for(i=0;i<=0;i++)
{
for(j=10;j<18;j++)
{
map[i][j]='.';
}
}
for(i=1;i<=5;i++)
{
for(j=0;j<=7;j++)
{
map[i][j]=map[i+1][j];
}
}
for(i=6;i<7;i++)
{
for(j=0;j<=7;j++)
{
map[i][j]='.';
}
}
}
}
else
{
if(left==right)
{
printf("Case %d:\nThe figure is correct.\n",ans++);
continue;
}
else if(left>right)
{
for(i=6;i>=2;i--)
{
for(j=0;j<=7;j++)
{
map[i][j]=map[i-1][j];
}
}
for(i=0;i<=7;i++)
map[1][i]='.';
for(i=0;i<=4;i++)
{
for(j=10;j<18;j++)
{
map[i][j]=map[i+1][j];
}
}
for(i=10;i<18;i++)
{
map[5][i]='.';
}
}
else
{
for(i=6;i>=2;i--)
{
for(j=10;j<18;j++)
{
map[i][j]=map[i-1][j];
}
}
for(i=10;i<18;i++)
map[1][i]='.';
for(i=0;i<=4;i++)
{
for(j=0;j<=7;j++)
{
map[i][j]=map[i+1][j];
}
}
for(i=0;i<=7;i++)
{
map[5][i]='.';
}
}
}
printf("Case %d:\n",ans++);
for(i=0;i<7;i++)
{
for(j=0;j<18;j++)
{
printf("%c",map[i][j]);
}
printf("\n");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: