QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#615898#9439. Aim Highucup-team3586#AC ✓6ms5044kbC++231.8kb2024-10-05 20:53:492024-10-05 20:53:51

Judging History

This is the latest submission verdict.

  • [2024-10-05 20:53:51]
  • Judged
  • Verdict: AC
  • Time: 6ms
  • Memory: 5044kb
  • [2024-10-05 20:53:49]
  • Submitted

answer

#include<bits/stdc++.h>
// #pragma GCC optimize("Ofast")
// #pragma GCC optimize("unroll-loops")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
using namespace std;
inline int read(){
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
const int p=998244353;
int qp(int x,int y)
{
	int res=1;
	for(int t=x; y; y>>=1,t=1ll*t*t%p)
		if(y&1) res=1ll*res*t%p;
	return res;
}
int f[103][103];
signed main()
{
	for(int T=read();T--;)
	{
		int n=read();
		if(n>=5){puts("-1");continue;}
		memset(f,0,sizeof(f));
		f[1][1]=1;
		vector<vector<int>> vec;
		for(int i=1; i<=100; ++i)
			for(int j=1; j<=100; ++j) if(f[i][j])
			{
				if(i>=n) f[i][j]--;
				// printf("%lld %lld %lld down\n",i,j,f[i][j]);
				if(!f[i][j]) continue;
				f[i+1][j]+=f[i][j];
				if(j>1&&f[i+1][j-1]==0)
				{
					vec.push_back({j-1,n-i-1,j,n-i-1,j,n-i});
					vec.push_back({1-(j-1),n-i-1,1-j,n-i-1,1-j,n-i});
					f[i+1][j-1]+=1,--f[i][j];
				}
				for(int t=f[i][j]; t--;)
					vec.push_back({j+1,n-i-1,j,n-i-1,j,n-i}),
					vec.push_back({1-(j+1),n-i-1,1-j,n-i-1,1-j,n-i});
				f[i+1][j+1]+=f[i][j];
			}
		reverse(vec.begin(),vec.end());
		vec.push_back({1,n-1,0,n-1,0,n});
		printf("%d\n",(int)vec.size());
		map<pair<int,int>,int> mp;
		for(int i=-100; i<=100; ++i)
			for(int j=-100; j<=0; ++j)
				++mp[{i,j}];
		for(auto i:vec)
		{
			pair<int,int> X=make_pair(i[0],i[1]);
			pair<int,int> Y=make_pair(i[2],i[3]);
			pair<int,int> Z=make_pair(i[4],i[5]);
			assert(mp[X]);
			assert(mp[Y]);
			--mp[X],--mp[Y];
			++mp[Z];
			for(int j:i) printf("%d ",j);
			puts("");
		}
	}
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 5044kb

input:

1
1

output:

1
1 0 0 0 0 1 

result:

ok Output is valid. OK

Test #2:

score: 0
Accepted
time: 6ms
memory: 5028kb

input:

6
1
2
3
4
5
6

output:

1
1 0 0 0 0 1 
3
-1 0 0 0 0 1 
2 0 1 0 1 1 
1 1 0 1 0 2 
9
0 -1 -1 -1 -1 0 
1 -1 2 -1 2 0 
-2 0 -1 0 -1 1 
3 0 2 0 2 1 
-1 0 0 0 0 1 
2 0 1 0 1 1 
-1 1 0 1 0 2 
2 1 1 1 1 2 
1 2 0 2 0 3 
41
-5 -4 -4 -4 -4 -3 
6 -4 5 -4 5 -3 
-2 -4 -3 -4 -3 -3 
3 -4 4 -4 4 -3 
-4 -3 -3 -3 -3 -2 
5 -3 4 -3 4 -2 
-4 -3...

result:

ok Output is valid. OK

Extra Test:

score: 0
Extra Test Passed