A Digital Satire of Digital Age
完全被自己蠢到气哭
明确对于每一组输入,要记录的有天枰底部,作为天枰位置的标记,还有天枰上的字符串(有可能是空)
天枰的位置有三种情况,各建三个字符数组表示它们,并且注意赋值完之后要重置。
好了,也不知道还能说什么了,直接上代码吧
#include <bits/stdc++.h>
using namespace std;
string aa[7];
string bb[7];
string cc[7];
int cal(char a)
{
int x = (int)a;
int y = 0;
int z=0;
while (x)
{
if (!( x & 1))
{
y++;
}else{
z++;
}
x >>= 1;
}
return y+z*2;
}
int main()
{
aa[0] = "........||.../\\...";
aa[1] = "........||../..\\..";
aa[2] = ".../\\...||./....\\.";
aa[3] = "../..\\..||/......\\";
aa[4] = "./....\\.||\\______/";
aa[5] = "/......\\||........";
aa[6] = "\\______/||........";
bb[0] = ".../\\...||........";
bb[1] = "../..\\..||........";
bb[2] = "./....\\.||.../\\...";
bb[3] = "/......\\||../..\\..";
bb[4] = "\\______/||./....\\.";
bb[5] = "........||/......\\";
bb[6] = "........||\\______/";
cc[0] = "........||........";
cc[1] = ".../\\...||.../\\...";
cc[2] = "../..\\..||../..\\..";
cc[3] = "./....\\.||./....\\.";
cc[4] = "/......\\||/......\\";
cc[5] = "\\______/||\\______/";
cc[6] = "........||........";
ios::sync_with_stdio(0);
int T;
cin >> T;
for(int k=1;k<=T;k++)
{
string s1 = "", s2 = "";
int r1=-1, r2=-1;
for (int i = 0; i < 7; i++)
{
string s;
cin >> s;
bool flag = false;
for (int j = 0; j < s.length(); j++)
{
if (s[j] =='|')
{
flag = true;
continue;
}
if(s[j]=='_'){
if (!flag)
{
r1 = i;
}
else
{
r2 = i;
}
}
if (s[j] >= 65 && s[j] <= 90)
{
if (!flag)
{
s1 += s[j];
}
else
{
s2 += s[j];
}
}
}
}
string _;
cin>>_;
int c1 = 0, c2 = 0;
for (int i = 0; i < s1.length(); i++)
c1 = c1 + cal(s1[i]);
for (int i = 0; i < s2.length(); i++)
c2 = c2 + cal(s2[i]);
cout<<"Case "<<k<<":"<<endl;
if (c1 > c2 && r1 <= r2)
{
for(int i=0;i<s1.length();i++){
aa[5][i+1]=s1[i];
}
for(int i=0;i<s2.length();i++){
aa[3][i+11]=s2[i];
}
for(int i=0;i<7;i++){
cout<<aa[i]<<endl;
}
for (int i = 0; i < s1.length(); i++)
{
aa[5][i + 1] = '.';
}
for (int i = 0; i < s2.length(); i++)
{
aa[3][i + 11] = '.';
}
}
else if (c1 == c2 && r1 != r2)
{
for (int i = 0; i < s1.length(); i++)
{
cc[4][i + 1] = s1[i];
}
for (int i = 0; i < s2.length(); i++)
{
cc[4][i + 11] = s2[i];
}
for (int i = 0; i < 7; i++)
{
cout << cc[i] << endl;
}
for (int i = 0; i < s1.length(); i++)
{
cc[4][i + 1] = '.';
}
for (int i = 0; i < s2.length(); i++)
{
cc[4][i + 11] = '.';
}
}
else if (c1 < c2 && r1 >= r2){
for (int i = 0; i < s1.length(); i++)
{
bb[3][i + 1] = s1[i];
}
for (int i = 0; i < s2.length(); i++)
{
bb[5][i + 11] = s2[i];
}
for (int i = 0; i < 7; i++)
{
cout << bb[i] << endl;
}
for (int i = 0; i < s1.length(); i++)
{
bb[3][i + 1] = '.';
}
for (int i = 0; i < s2.length(); i++)
{
bb[5][i + 11] = '.';
}
}
else{
cout << "The figure is correct."<<endl;
}
}
return 0;
}