抢整

抢整


Time Limit: 1 Second      Memory Limit: 8192 KB


MSTCer热衷于抢整(抢整:在论坛上抢发编号为整数帖文章,对于论坛的某一个主题帖,按照发贴时间顺序,第一个帖子拥有编号1,第二个帖子拥有编号2,依此类推)。

为了抢到整数N,许多MSTCer都发了贴,现在告诉你他们发贴的名单(已经按照发贴时间顺序排好),你能够找到谁抢到了整数N吗?

这太容易了!但是现在麻烦来了,MSTCer eshook发现了论坛的一个漏洞,利用此漏洞可以删掉编号为1的帖子(删除后原先编号为n+1的帖子的编号变为n)。假定eshook使用这个漏洞的时候,在名单记录中会多一条"-"(不包含引号)的记录,那么你还可以解决原先的问题吗?

输入格式

第一行只有一个整数N,表示要抢的整数,0 < N < 100

第二行开始一直到输入的末尾,这是按照发贴时间顺序排好的名单,每行一个MSTCer的名字,只有一个减号的一行代表eshook在那个时间执行了一次删除第一个帖子的操作(他只会在第一个帖子存在时执行这种操作)。输入数据确保最终的帖子数目不超过 2N,你可以用feof(stdin)来判断是否到达文件末尾。出现在这里的MSTCer名字可能由大写字母、小写字母、数字和下划线组成,最长为1024个字符,最短为2个字符。

输出格式

输出只需要一行,为抢到整数 N 的MSTCer的名字。

样例输入1

7

Madog

cerror

Madog

lnzju

pluskid

panda_lin

wyest

parda

Madog

样例输出1

wyest

样例输入2

4

pluskid

cerror

mnxheng

quark

hzqtc

eshook

-

houshui

-

xia0pang

样例输出2

eshook

提示 

在样例输入2中,pluskid和cerror的帖子被eshook删除了,最终的名单是:

mnxheng

quark

hzqtc

eshook

houshui

xia0pang

其中第四位是eshook。

 

 

#include<stdio.h>
#include
<malloc.h>
int main()
{
struct MST
{
char name[1024];
struct MST *next;
}
*head, *p, *pt;
int i, n, j;
char temp[1024];
head
=malloc(sizeof(struct MST));
p
=head;
scanf(
"%d", &n);
scanf(
"%s", temp);
while(!feof(stdin))
{
if(temp[0]!='-')
{
j
=0;
while((p->name[j]=temp[j])!=0) j++;
p
->next=malloc(sizeof(struct MST));
p
=p->next;
}
else if(temp[0]=='-')
{
pt
=head->next;
free(head);
head
=pt;
}
scanf(
"%s", temp);
}
p
->next=NULL;
for(i=0,p=head;i<n-1;i++)
p
=p->next;
puts(p
->name);
}

 

posted @ 2010-02-16 21:35  长江西岸  阅读(200)  评论(0编辑  收藏  举报