题目描述
输入
输出
样例输入
10 4 3
0 0 0
样例输出
4 8, 9 5, 3 1, 2 6, 10, 7
提示
Sample output:
△△4△△8,△△9△△5,△△3△△1,△△2△△6,△10,△△7
△表示空格
自己写的,结果没错,但是时间超时了55555555555555。第一次发写的不好我在继续努力!
#include<iostream>
using namespace std;
int main()
{
int n,k,m;
while(cin>>n>>k>>m&&n!=0&&k!=0&&m!=0)
{
int a[n+1],*p1,*p2;
for(int i=1;i<=n;i++)
a[i]=i;a[0]=n+1;
p1=&a[1];p2=&a[n];
int c=0,d=0,b=0;
int t=0,y=n;
int flsh=1;
while(flsh)
{
while(c!=k)
{
if(*p1!=0)
c++;
if(c==k)
break;
t++;
p1++;
if(t==n)
{
p1=&a[1];
t=0;
}
}
while(d!=m)
{
if(*p2!=0)
d++;
if(d==m)
break;
p2--;
if(*p2==n+1)
{
p2=&a[n];
}
} if(b==n-1)
{cout<<" "<<*p1;flsh=0; break;}
if(*p1==*p2)
{ cout<<" "<<*p1<<",";b++;c=d=0;*p1=0;*p2=0; }
if(*p1!=*p2)
{
cout<<" "<<*p1;b++;c=0;*p1=0;
cout<<" "<<*p2<<",";b++;d=0;*p2=0;
}
}
}
return 0;
}