求 hack
查看原帖
求 hack
600315
neilliu楼主2023/8/21 19:25
#include<bits/stdc++.h>
using namespace std;
vector<int> a[300005]; 
void solve()
{
	int n,p; scanf("%d%d",&n,&p);
	if(n + 1 < p || p == 1){
		for(int i = 1; i <= n; i++) printf("%d ",i);
		printf("\n");
		return ;
	}
	for(int i = 0; i < p; i++) a[i].clear();
	for(int i = 1; i <= n; i++) a[i % p].push_back(i); 
	for(int i = 0; i < a[0].size(); i++)	printf("%d ",a[0][i]);
	if(p % 2 == 0) for(int i = 0; i < a[p/2].size(); i++) printf("%d ",a[p/2][i]); 
	for(int i = 1; p-i > i; i++){
		int cnt = 0;
		while(1){
			int can = 2;
			if(a[i].size() <= cnt) can--;
			else printf("%d ",a[i][cnt]);
			if(a[p-i].size() <= cnt) can--;
			else printf("%d ",a[p-i][cnt]);
			if(!can) break;
			cnt++;
 		}
	}
	printf("\n");
}
int main()
{
	int t; scanf("%d",&t);
	while(t--) solve();
	return 0;
}

#10,11,12 WA,路过的大佬帮忙看看

2023/8/21 19:25
加载中...