【构造】CF1758 C

Problem - 1758C - Codeforces

题意:

【构造】CF1758 C_第1张图片

思路:

【构造】CF1758 C_第2张图片 

思路:

#include 

#define int long long

using namespace std;

const int mxn=2e5+10;
const int mxe=2e5+10;

int N,x;
int ans[mxn];

void solve(){
	cin>>N>>x;
	if(N%x!=0){
		cout<<-1<<'\n';
		return;
	}
	ans[x]=N;
	ans[1]=x;
	ans[N]=1;
	for(int i=2;i<=N-1;i++){
		if(i!=x) ans[i]=i;
	}
	for(int i=x+1;i<=N-1;i++){
		if((ans[i]%x==0)&&(N%i==0)){
			swap(ans[i],ans[x]);
			x=i;
		}
	}
	for(int i=1;i<=N;i++) cout<>__;
	while(__--)solve();return 0;
}

 

你可能感兴趣的:(构造,c语言,开发语言)