Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
34281 22级廖思学 【S】T2 C++ 通过 100 10 MS 264 KB 1397 2024-11-05 11:21:48

Tests(10/10):


#include<bits/stdc++.h> using namespace std; #define int long long 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); } signed main(){ // freopen("20241030T2.out","w",stdout); scanf("%d%d",&n,&k); int p=gcd(n,k); if(n%2==0){cout<<-1<<endl;return 0;} cout<<(n-1)/2<<endl; if(gcd(n,k)==1){ // cout<<"!!!!!"<<endl; for(int i=1;i<=n-2;i+=2){ int u=i*k%n,v=(i*k+1)%n; printf("%d %d\n",u,v); } return 0; } for(int i=0;(i+k)%n;i=(i+2*k)%n){ // cout<<ct<<endl; //cout<<i<<" "<<(i+k)%n<<" "<<(i+2*k)%n<<endl; int u=i,v=(i+k)%n; printf("%d %d\n",u,v); } // return 0; // cout<<"!!!!!!!!!!"<<endl; int cnt=0; for(int i=0;(i+k)%n>0;i=(i+k)%n){ // cout<<"!"<<i<<" "<<endl; ++cnt; if(cnt%2==1){ for(int j=0;j<(p-1);j+=2){ // cout<<j<<" "<<p-1<<endl; printf("%d %d\n",(i+j)%n,(i+j+1)%n); } } else{ for(int j=1;j<(p-1);j+=2){ // cout<<j<<" "<<p-1<<endl; printf("%d %d\n",(i+j)%n,(i+j+1)%n); } } } // cout<<"????????????????"<<endl; int i=n-k; for(int j=2;j<=(p-1);j+=2){ printf("%d %d\n",i,i+j); } return 0; }


测评信息: