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; }
相关文章推荐
- android控件的测量
- 图片保存数据库
- scoket基础
- POJ1845------Sumdiv
- 自定义ListView显示项
- 求前缀表达式的值(25)
- Proguard语法及常用proguard.cfg代码段
- 深度-first遍历图--邻接表实现
- input中用中文输入法下的全角·替换英文输入法下的句号.
- ViewDragHelper 使用
- 设置vmware与主机IP同网段
- Android学习JNI,使用JNI实现字符串加密
- windows远程登录全屏
- Android物理键监听
- haproxy 80跳转8080端口
- WINSERVER 2008 上安装MONGODB 64位
- metasploit 中文系统安装失败问题
- hdu 4291 2012成都赛区网络赛 矩阵快速幂 ***
- php获得网站根目录的几个方法
- Xamarin 开发常见问题