求hack(上次发错了)
查看原帖
求hack(上次发错了)
964876
_maple_leaf_楼主2024/1/10 13:40

上次发错了,发成机房巨佬的啦! code

#include<bits/stdc++.h>
#define it vector<int>::iterator
#define int long long
using namespace std;
const int N=1e5+10;
int t;
vector<int>cnt[N];
int n,p;
signed main(){
	cin>>t;
	while(t--){
		cin>>n>>p;
		for(int i=1;i<=n;i++){
			cnt[i%p].push_back(i);
		}
		for(int i=0;i<=n;i++){
			while(cnt[i].size()&&cnt[p-i].size()){
				it j=cnt[i].begin(),k=cnt[p-i].begin();
				if(i!=p-i){cout<<*j<<" "<<*k<<" ";cnt[i].erase(j),cnt[p-i].erase(k);}
				else {cout<<*j<<" ";cnt[i].erase(j);}
			}
		}
		for(int i=0;i<=n;i++){
			while(cnt[i].size()){
				cout<<*cnt[i].begin()<<" ";
				cnt[i].erase(cnt[i].begin());
			}
		}cout<<endl; 
	}
	return 0;
}

10pts

2024/1/10 13:40
加载中...