MLE求救
查看原帖
MLE求救
1292740
hanruize123楼主2024/10/2 12:33
#include<bits/stdc++.h>
using namespace std;
int main(){
	int t;
	cin>>t;
	while(t--){
		int n,p,i,j;
		cin>>n>>p;
		if(n*2==p){
			for(i=1;i<=n;i++){
				cout<<i<<' ';
			}
			cout<<'\n';
			continue;
		}
		vector<int> g[p];
		for(i=1;i<=n;i++){
			int r=i%p;
			g[r].push_back(i);
		}
		for(i=0;i<=min(p/2,n);i++){
			if(i==0||i*2==p){
				for(j=0;j<g[i].size();j++){
					cout<<g[i][j]<<' ';
				}
			}
			else{
				if(g[i].size()>=g[p-i].size()){
					for(j=0;j<g[p-i].size();j++){
						cout<<g[i][j]<<' '<<g[p-i][j]<<' ';
					}
					for(j=g[p-i].size();j<g[i].size();j++){
						cout<<g[i][j]<<' ';
					}
				}
				else{
					for(j=0;j<g[i].size();j++){
						cout<<g[p-i][j]<<' '<<g[i][j]<<' ';
					}
					for(j=g[i].size();j<g[p-i].size();j++){
						cout<<g[p-i][j]<<' ';
					}
				}
			}
		}
		cout<<'\n';
	}
    return 0;
}
2024/10/2 12:33
加载中...