25 pts 求助
查看原帖
25 pts 求助
1471260
guoshengyu1231楼主2025/8/5 08:48

rt,WA on 66991111

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
int n,m,k,a[maxn],b[maxn],tot,d,t;
bool f[maxn];
int main()
{
    cin>>n>>m>>k;
    if(k<ceil(n*1.0/m)-1||k>n-m) 
     {
        cout<<-1;
        return 0;
     }
    for(int i=1;i<=m;i++) cin>>a[i],f[a[i]]=true;
    for(int i=1;i<=n;i++) if(!f[i]) b[++tot]=i;
    for(int i=1;i<=tot;i++)
     if(i%k==1||k==1) cout<<a[(int)ceil(i*1.0/k)]<<' '<<b[i]<<"\n",d=b[i],t++;
     else
      {
         cout<<b[i-1]<<' '<<b[i]<<"\n";d=b[i];
         if(i%k==0)
		  {
		  	if(i/k==m) 
			 {
			 	cout<<b[i]<<' '<<a[1];
			 	return 0;
			 }
		  	cout<<b[i]<<' '<<a[i/k+1]<<"\n";d=a[i/k+1];
		  } 
      }
    while(t<m) cout<<d<<' '<<a[++t]<<"\n",d=a[t];
    cout<<d<<' '<<a[1]<<"\n";
    return 0;
}

回复有用必关!

2025/8/5 08:48
加载中...