Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33917 | A21μΘ_wjy | 【S】T2 | C++ | 运行超时 | 50 | 1243 MS | 252 KB | 736 | 2024-10-30 14:57:25 |
#include<bits/stdc++.h> #define int long long using namespace std; inline int gcd(int a,int b){return !b?a:gcd(b,a%b);} const int maxn=1e5+7; int n,k; int d,l; int Get(int i,int j){ return (i+j*k)%n; } signed main(){ cin>>n>>k; d=gcd(n,k); if(n%2==0){ cout<<-1<<endl; return 0; } l=n/d; cout<<(n-1)/2<<endl; if(d==1){ for(int i=0;i<=l-3;i+=2)cout<<Get(0,i)<<" "<<Get(0,i+1)<<endl; return 0; } for(int j=0;j<=l-3;j+=2)for(int i=0;i<=d-2;i++)cout<<Get(i,j)<<" "<<Get(i+1,j+1)<<endl; for(int i=0;i<=l-3;i+=2)cout<<Get(d-2,i)<<" "<<Get(d-1,i)<<endl; for(int i=0;i<=d-3;i++)cout<<Get(i,l-2)<<" "<<Get(i+1,l-2)<<endl; return 0; }