打表60WA
查看原帖
打表60WA
1280343
a111111111111楼主2024/11/7 18:52

在比赛时打表打的有问题,所以 100 AC-->60 WA

求调 Q_Q

#include<bits/stdc++.h>
using namespace std;
int l=INT_MAX;
vector<int> v={6, 2, 5,5,4,5,6, 3, 7, 6 };
vector<int> w={l, l, 1,7,4,2,6,-2, -2,-2};
vector<int> g={-1,-1,1,7,4,2,6, 8, 10,18};
int main()
{
	//freopen("sticks.in","r",stdin);
	//freopen("sticks.out","w",stdout);
	int t; cin>>t;
	while(t--)
	{
		int n; cin>>n;
		if(n==1)
			cout<<"-1\n";
		else if(n%7==0)
		{
			for(int x=0;x<n/7;x++)
				cout<<"8";
			cout<<'\n';
		}
		else if(n<=10)
			cout<<g[n]<<'\n';
		else
		{
			int m=n%7,k=floor(n/7);
			string s;
			for(int x=1;x<k;x++)
				s+="8";
			if(w[m]>w[m+1] && v[m+1]!=-2)
			{
				s+="0";
				m++;
			}
			else s+="8";
			s.push_back(w[m]+'0');
			reverse(begin(s),end(s));
			cout<<s<<'\n';
		}
	}
	return 0;
} 
2024/11/7 18:52
加载中...