uva133 The Dole Queue

简介: uva133 The Dole Queue
#include <stdio.h>#include <stdlib.h>#include <string.h>#define LOCAL#define MAXN 30typedefstructnode{
intdata;
structnode*pre, *next;
}*Node;
Nodelink[MAXN] ;
voidinit(intn, Node*head, Node*rear);
intmain()
{
intn, k, m;
Nodehead, rear;
intcount1, count2;
Nodep, q, r, s;
intfirst;
head= (Node)malloc(sizeof(structnode));
rear= (Node)malloc(sizeof(structnode));
#ifdef LOCALfreopen("c://uva_in.txt", "r", stdin);
#endifwhile (scanf("%d%d%d", &n, &k, &m) ==3&&!(n==0&&k==0&&m==0))
    {
init(n, &head, &rear);
p=head;
q=rear;
first=1;
count1=count2=1;
while(n>0)
        {
while (count1<k)
            {
p=p->next;
count1++;
            }
while (count2<m)
            {
q=q->pre;
count2++;
            }
if (p!=q)
            {
if (first)
first=0;
elseprintf(",");
printf("%3d%3d", p->data, q->data);
if (n>2)
                {
if (p->next!=q)
                    {
p->pre->next=p->next;
p->next->pre=p->pre;
r=p;
p=p->next;
free(r);
q->pre->next=q->next;
q->next->pre=q->pre;
r=q;
q=q->pre;
free(r);
                    } else                    {
p->pre->next=q->next;
q->next->pre=p->pre;
r=p;
s=q;
p=q->next;
q=r->pre;
free(r);
free(s);
                    }
                } elseif (n==2)
                {
free(p);
free(q);
                }
n-=2;
            }else            {
if (first)
first=0;
elseprintf(",");
printf("%3d", p->data);
if (n>1)
                {
p->pre->next=p->next;
p->next->pre=p->pre;
r=p;
p=p->next;
q=q->pre;
free(r);
                } elseif (n==1)
                {
free(p);
                }
n-=1;
            }
count1=count2=1;
        }
printf("/n");
    }
return0;
}
voidinit(intn, Node*head, Node*rear)
{
inti;
Nodep, q;
for (i=0; i<n; i++)
    {
p= (Node)malloc(sizeof(structnode));
p->data=i+1;
if (i==0)
        {
*head=p;
p->next=NULL;
q=p;
        } else        {
p->pre=q;
p->next=NULL;
q->next=p;
q=p;
        }
if (i==n-1)
*rear=q;
    }
    (*head)->pre=*rear;
    (*rear)->next=*head;
}
目录
相关文章
|
安全 Java
使用FilterChain实现Java中的过滤器链
使用FilterChain实现Java中的过滤器链
|
JavaScript 前端开发 大数据
Vue.js 中的 `v-if` 和 `v-show`:理解与应用
Vue.js 中的 `v-if` 和 `v-show`:理解与应用
235 0
|
NoSQL API Redis
【Redi设计与实现】第五章:跳跃表
【Redi设计与实现】第五章:跳跃表
|
编解码 人工智能 算法
AliRTC 开启视频互动 “零计算” 时代
在 2021 云栖大会《产业视频化创新与最佳实践》视频云主题论坛中,阿里云智能高级技术专家在《AliRTC 开启视频互动 "零处理" 时代》的主题演讲中,发布了阿里云视频云下一代实时交互解决方案 —RTC “零处理”,同时分享了阿里云视频云在 RTC 产品的探索和实践,以下为演讲内容整理。
AliRTC 开启视频互动 “零计算” 时代
|
人工智能
清华人工智能研究院今日成立!张钹姚期智坐镇,Jeff Dean被聘顾问委员
今天,清华大学成立人工智能研究院,由中国科学院院士张钹院士领衔,图灵奖得主姚期智院士被聘为学术委员会主任。在成立仪式上,还聘请谷歌人工智能负责人Jeff Dean为清华大学计算机学科顾问委员会委员。
2139 0
|
Linux Shell 数据安全/隐私保护
|
iOS开发 数据安全/隐私保护
ios应用提交上架被appstore拒绝的十大理由
1.崩溃和问题 你需要尽量修复你应用中的崩溃和那些明显的问题,否则你的应用很可能被拒绝。 2.失效的链接 保证你应用中出现的链接的有效性。 3.默认占位图片 含有系统默认占位图片的应用不会被通过,你需要处理你的占位图片/内容,保证其都是有意义的。
1226 0