您的位置:首页 > 产品设计 > UI/UE

Uva 133 - The Dole Queue

2015-02-23 12:37 330 查看
难度不是很大,思路方面不是特别难,但是对细节方面还是有一定要求的,这个题自己的思路我感觉还是比较中规中矩,技巧性不大,可能是因为目前所掌握的各种算法技巧不足,以后要多在这方面下功夫。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int m,n,k,i,j,l,r,s,t,ka,ma,ia,ja;
int a[21],b[21];
while( scanf("%d%d%d",&n,&k,&m) != EOF )
{
if(n==0 && k==0 && m==0)
break;
ia=1; ja=n; t=0;
for(i=1; i<=20; i++)
a[i]=b[i]=i;
while(1)
{
r=0;
for(i=1; i<=n; i++)
if(a[i]>=1 && a[i]<=n)
r=1;
if(r == 0)
break;
ka=k; ma=m;
for(i=ia; ;ia++,i++)
{
if(a[i]<1 || a[i]>n)
{
if(i == n)
{ ia=0; i=0; }
continue;
}
ka--;
if(ka == 0)
{
if(t != 0)
printf(",");
t++;
printf("%3d",a[i]);
break;
}
if(i == n)
{ ia=0; i=0; }
}
for(j=ja; ;ja--,j--)
{
if(b[j]<1 || b[j]>n)
{
if(j == 1)
{ j=n+1; ja=n+1;}
continue;
}
ma--;
if(ma == 0)
{
if(b[j] == a[i])
break;
else
{ printf("%3d",b[j]); break; }
}
if(j == 1)
{ j=n+1; ja=n+1;}
}
a[i]=a[j]=b[i]=b[j]=100;
}
printf("\n");
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: