提交时间:2024-10-30 21:23:01
运行 ID: 33966
#include<bits/stdc++.h> using namespace std; int n,k; int gcd(int a,int b){ if(a<b){int c=a;a=b;b=c;} if(a%b==0)return b; return gcd(b,a%b); } int main(){ cin>>n>>k; int p=gcd(n,k); if(gcd(n,k)==1){ for(int i=1;i<=n-2;i+=2){ int u=i*k%n,v=(i*k+1)%n; cout<<u<<" "<<v<<endl; } return 0; } for(int i=0;(i+k)%n;i=(i+2*k)%n){ int u=i,v=(i+k)%n; cout<<u<<" "<<v<<endl; } int cnt=0; for(int i=0;(i+k)%n;i=(i+2*k)%n){ ++cnt; if(cnt%2==1){ for(int j=0;j<n/p-1;j+=2){ cout<<(i+j)%n<<" "<<(i+j+1)%n<<endl; } } else{ for(int j=1;j<n/p-1;j+=2){ cout<<(i+j)%n<<" "<<(i+j+1)%n<<endl; } } } return 0; }