第一题WA 80,求助

#include <bits/stdc++.h>
using namespace std;
#define ll (long long)
#define pr printf
#define sc scanf
string a,b,c,d,e;
map<char,string> mp4;
map<char,string> mp4h;
map<char,string> mp8;
map<char,string> mp8h;
map<char,string> mp16;
map<char,string> mp16h;
struct node
{
string o,ns;
node(){
o=“”;
}
}ans[6];
bool cmp(node a,node b)
{
if(a.ns.size()!=b.ns.size())
{
return a.ns.size()>b.ns.size();
}
else
{
return a.ns>b.ns;
}
}
int main()
{
mp4[‘0’]=“00”;
mp4[‘1’]=“01”;
mp4[‘2’]=“10”;
mp4[‘3’]=“11”;
mp4h[‘0’]=“”;
mp4h[‘1’]=“1”;
mp4h[‘2’]=“10”;
mp4h[‘3’]=“11”;
mp8[‘0’]=“000”;
mp8[‘1’]=“001”;
mp8[‘2’]=“010”;
mp8[‘3’]=“011”;
mp8[‘4’]=“100”;
mp8[‘5’]=“101”;
mp8[‘6’]=“110”;
mp8[‘7’]=“111”;
mp8h[‘0’]=“”;
mp8h[‘1’]=“1”;
mp8h[‘2’]=“10”;
mp8h[‘3’]=“11”;
mp8h[‘4’]=“100”;
mp8h[‘5’]=“101”;
mp8h[‘6’]=“110”;
mp8h[‘7’]=“111”;
mp16[‘0’]=“0000”;
mp16[‘1’]=“0001”;
mp16[‘2’]=“0010”;
mp16[‘3’]=“0011”;
mp16[‘4’]=“0100”;
mp16[‘5’]=“0101”;
mp16[‘6’]=“0110”;
mp16[‘7’]=“0111”;
mp16[‘8’]=“1000”;
mp16[‘9’]=“1001”;
mp16[‘A’]=“1010”;
mp16[‘B’]=“1011”;
mp16[‘C’]=“1100”;
mp16[‘D’]=“1101”;
mp16[‘E’]=“1110”;
mp16[‘F’]=“1111”;
mp16h[‘0’]=“”;
mp16h[‘1’]=“1”;
mp16h[‘2’]=“10”;
mp16h[‘3’]=“11”;
mp16h[‘4’]=“100”;
mp16h[‘5’]=“101”;
mp16h[‘6’]=“110”;
mp16h[‘7’]=“111”;
mp16h[‘8’]=“1000”;
mp16h[‘9’]=“1001”;
mp16h[‘A’]=“1010”;
mp16h[‘B’]=“1011”;
mp16h[‘C’]=“1100”;
mp16h[‘D’]=“1101”;
mp16h[‘E’]=“1110”;
mp16h[‘F’]=“1111”;
// freopen(“1.txt”,“r”,stdin);
getline(cin,a);
getline(cin,b);
getline(cin,c);
getline(cin,d);
getline(cin,e);
ans[1].o=a;
ans[2].o=b;
ans[3].o=c;
ans[4].o=d;
ans[5].o=e;
// cout << “1”;
for(int i=a.size()-1; i >=0; i–)
{
if(i!=0)
{
ans[1].ns+=mp4[a[i]];
}
else
{
ans[1].ns+=mp4h[a[i]];
}
}
// cout << “2”;
for(int i=d.size()-1; i >=0; i–)
{
if(i!=0)
{
ans[4].ns+=mp8[d[i]];
}
else
{
ans[4].ns+=mp8h[d[i]];
}
}
// cout << “3”;
for(int i=e.size()-1; i >=0; i–)
{
if(i!=0)
{
ans[5].ns+=mp16[e[i]];
}
else
{
ans[5].ns+=mp16h[e[i]];
}
}
// cout << “4”;
ans[3].ns=c;
int ii=1;
int b1=0;
for(int i=0; i <= b.size()-1; i++)
{
b1*=10;
b1+=(b[i]-‘0’);
}
// cout << b1 << endl;
// cout << “5”;
while(ii<= b1)
{
ii*=2;
}
ii/=2;
while(b1>0)
{
if(b1>=ii)
{
b1-=ii;
ans[2].ns+=‘1’;
}
else
{
ans[2].ns+=‘0’;
}
ii/=2;
}
// cout << “6”;
sort(ans+1,ans+5+1,cmp);
for(int i=1; i <= 5; i++)
{
if(ans[i].o==a)
{
if(i<=3)
{
pr(“Welcome!\n”);
break;
}
if(ans[i].ns==ans[3].ns)
{
pr(“Welcome!\n”);
break;
}
pr(“Sorry.\n”);
break;
}
}
for(int i=1; i <= 5; i++)
{
cout << ans[i].o<<" ";
}
return 0;
}

1 个赞

把 cpp 点出来

2 个赞
#include <bits/stdc++.h>
using namespace std;
#define ll (long long)
#define pr printf
#define sc scanf 
string a,b,c,d,e;
map<char,string> mp4;
map<char,string> mp4h;
map<char,string> mp8;
map<char,string> mp8h;
map<char,string> mp16;
map<char,string> mp16h;
struct node
{
	string o,ns;
	node(){
		o="";
	}
}ans[6];
bool cmp(node a,node b)
{
	if(a.ns.size()!=b.ns.size())
	{
		return a.ns.size()>b.ns.size();
	}
	else
	{
		return a.ns>b.ns;
	}
}
int main()
{
	mp4['0']="00";
	mp4['1']="01";
	mp4['2']="10";
	mp4['3']="11";
	mp4h['0']="";
	mp4h['1']="1";
	mp4h['2']="10";
	mp4h['3']="11";
	mp8['0']="000";
	mp8['1']="001";
	mp8['2']="010";
	mp8['3']="011";
	mp8['4']="100";
	mp8['5']="101";
	mp8['6']="110";
	mp8['7']="111";
	mp8h['0']="";
	mp8h['1']="1";
	mp8h['2']="10";
	mp8h['3']="11";
	mp8h['4']="100";
	mp8h['5']="101";
	mp8h['6']="110";
	mp8h['7']="111";
	mp16['0']="0000";
	mp16['1']="0001";
	mp16['2']="0010";
	mp16['3']="0011";
	mp16['4']="0100";
	mp16['5']="0101";
	mp16['6']="0110";
	mp16['7']="0111";
	mp16['8']="1000";
	mp16['9']="1001";
	mp16['A']="1010";
	mp16['B']="1011";
	mp16['C']="1100";
	mp16['D']="1101";
	mp16['E']="1110";
	mp16['F']="1111";
	mp16h['0']="";
	mp16h['1']="1";
	mp16h['2']="10";
	mp16h['3']="11";
	mp16h['4']="100";
	mp16h['5']="101";
	mp16h['6']="110";
	mp16h['7']="111";
	mp16h['8']="1000";
	mp16h['9']="1001";
	mp16h['A']="1010";
	mp16h['B']="1011";
	mp16h['C']="1100";
	mp16h['D']="1101";
	mp16h['E']="1110";
	mp16h['F']="1111";
//	freopen("1.txt","r",stdin);
	getline(cin,a);
	getline(cin,b);
	getline(cin,c);
	getline(cin,d);
	getline(cin,e);
	ans[1].o=a;
	ans[2].o=b;
	ans[3].o=c;
	ans[4].o=d;
	ans[5].o=e;
//	cout << "1";
	for(int i=a.size()-1; i >=0; i--)
	{
		if(i!=0)
		{
			ans[1].ns+=mp4[a[i]];
		}
		else
		{
			ans[1].ns+=mp4h[a[i]];
		}
	}
//	cout << "2";
	for(int i=d.size()-1; i >=0; i--)
	{
		if(i!=0)
		{
			ans[4].ns+=mp8[d[i]];
		}
		else
		{
			ans[4].ns+=mp8h[d[i]];
		}
	}
//	cout << "3";
	for(int i=e.size()-1; i >=0; i--)
	{
		if(i!=0)
		{
			ans[5].ns+=mp16[e[i]];
		}
		else
		{
			ans[5].ns+=mp16h[e[i]];
		}
	}
//	cout << "4";
	ans[3].ns=c;
	int ii=1;
	int b1=0;
	for(int i=0; i <= b.size()-1; i++)
	{
		b1*=10;
		b1+=(b[i]-'0');
	}
//	cout << b1 << endl;
//	cout << "5";
	while(ii<= b1)
	{
		ii*=2;
	}
	ii/=2;
	while(b1>0)
	{
		if(b1>=ii)
		{
			b1-=ii;
			ans[2].ns+='1';
		}
		else
		{
			ans[2].ns+='0';
		}
		ii/=2;
	}
//	cout << "6";
	sort(ans+1,ans+5+1,cmp);
	for(int i=1; i <= 5; i++)
	{
		if(ans[i].o==a)
		{
			if(i<=3)
			{
				pr("Welcome!\n");
				break;
			}
			if(ans[i].ns==ans[3].ns)
			{
				pr("Welcome!\n");
				break;
			}
			pr("Sorry.\n");
			break;
		}
	}
	for(int i=1; i <= 5; i++)
	{
		cout << ans[i].o<<" ";
	}
	return 0;
}
1 个赞