cogs 762. [USACO Open09] 奶牛队列

★   输入文件:cline.in   输出文件:cline.out   简单对比
时间限制:1 s   内存限制:128 MB

农夫约翰有N头牛,编号依次为1~N,他正在把这些牛排成一队,队伍中开始是没有牛的,随着时间推移,牛儿一个一个地从左端或右端加入到队伍中来。令人烦心的是,随时会有一些牛从左端或右端离开队伍溜向草场。

FJ正费劲地给牛排队,请你帮帮他。

奶牛按1~N的顺序入队,牛一旦离队就再也不会回来了,你的程序将处理给定的S(1 <= S <= 100,000)个输入指令,每一个指令占一行,指令有两种类型:

*一头牛入队(带有一个参数,代表从左端入队还是右端入队)
*K头牛从左端或右端离队(提供的参数包括离队牛数及是从哪端离队)

输入指令中没有提到的操作则不会被执行。

当所有的输入指令都执行完毕后,你的程序必须要按从左到右的顺序输出队伍中牛的编号,最后的队伍保证不为空。

输入格式:
第1行:一个整数S;
第2~S+1行:第i+1行写着一个指令,指令有4种格式:
*A L ——表示有一头牛从左端入队;
*A R ——表示有一头牛从右端入队;
*D L K ——表示有K头牛从队伍左端离队;
*D R K ——表示有K头牛从队伍右端离队;

输出格式:
第1~??行:按从左到右的顺序输出队伍中牛的编号,一个数一行。

输入输出样例:
cline.in
10
A L
A L
A R
A L
D R 2
A R
A R
D L 1
A L
A R

cline.out
7
2
5
6
8

输出样例解释:
指令   执行完指令后牛的队伍
A L    1
A L    2 1
A R    2 1 3
A L    4 2 1 3
D R    2 4 2
A R    4 2 5
A R    4 2 5 6
D L    1 2 5 6
A L    7 2 5 6
A R    7 2 5 6 8

//初始设一个很大的数,从中间向两边扩展
#include<iostream>
#include<cstdio>
#define N 100010
using namespace std;

int q;
int f[N]={0};
void work()
{
    int i,j,k,l,r,num,tot=0,L;
    char op,ha;
    l=50000;
    r=49999;
    cin>>q;
    for(i=1;i<=q;i++)
    {
        cin>>op;
        if(op==‘A‘)
        {
            cin>>ha;
            tot++;
            if(ha==‘R‘)f[++r]=tot;
            if(ha==‘L‘)f[--l]=tot;
        }
        else
        {
            cin>>ha>>num;
            L=r-l+1;
            if(num>=L)l=r;
            else
            {
                if(ha==‘L‘)l+=num;
                else r-=num;
            }
        }

    }
    for(k=l;k<=r;k++)cout<<f[k]<<endl;
}
int main()
{
    freopen("cline.in","r",stdin);
    freopen("cline.out","w",stdout);
    work();
    return 0;
}
时间: 2024-10-13 03:11:14

cogs 762. [USACO Open09] 奶牛队列的相关文章

COGS [USACO Mar07] 奶牛交通

[USACO Mar07] 奶牛交通 农场中,由于奶牛数量的迅速增长,通往奶牛宿舍的道路也出现了严重的交通拥堵问题.FJ打算找出最忙碌的道路来重点整治. 这个牧区包括一个由M (1 ≤ M ≤ 50,000)条单行道路(有向)组成的网络,以及 N (1 ≤ N ≤ 5,000)个交叉路口(编号为1..N),每一条道路连接两个不同的交叉路口.奶牛宿舍位于第N个路口.每一条道路都由编号较小的路口通向编号较大的路 口.这样就可以避免网络中出现环.显而易见,所有道路都通向奶牛宿舍.而两个交叉路口可能由不

157. [USACO Nov07] 奶牛跨栏

157. [USACO Nov07] 奶牛跨栏(点击转到COGS) 输入文件:hurdles.in   输出文件:hurdles.out 时间限制:1 s   内存限制:128 MB 译 by CmYkRgB123 描述 Farmer John 想让她的奶牛准备郡级跳跃比赛,贝茜和她的伙伴们正在练习跨栏.她们很累,所以她们想消耗最少的能量来跨栏. 显然,对于一头奶牛跳过几个矮栏是很容易的,但是高栏却很难.于是,奶牛们总是关心路径上最高的栏的高度. 奶牛的训练场中有 N (1 ≤ N ≤ 300)

cogs 182. [USACO Jan07] 均衡队形 线段树

182. [USACO Jan07] 均衡队形 ★★☆   输入文件:lineup.in   输出文件:lineup.out   简单对比时间限制:4 s   内存限制:128 MB 题目描述 农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按同样的顺序站好.一日,农夫约翰决定为奶牛们举行一个“终极飞盘”比赛.为简化问题,他将从奶牛队列中选出一个连续区间来进行游戏.不过,参加游戏的奶牛要玩的开心的话就不能在身高上差距太大. 农夫约翰制定了 Q (1 ≤ Q ≤ 200,0

SPFA cojs 176. [USACO Feb07] 奶牛聚会

cojs 176. [USACO Feb07] 奶牛聚会 ★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比时间限制:3 s   内存限制:16 MB N(1 ≤ N ≤ 1000)个农场中的每个农场都有一只奶牛去参加位于第X个农场的聚会.共有M (1 ≤ M ≤ 100,000)条单向的道路,每条道路连接一对农场.通过道路i会花费Ti (1 ≤ Ti ≤ 100)的时间. 作为参加聚会的奶牛必须走到聚会的所在地(农场X).当聚会结束时,还要返回各自的农场.

Usaco Open09 Gold

Problem 1: Ski Lessons [Brian Jacokes, 2002] Farmer John wants to take Bessie skiing in Colorado. Sadly, Bessie is not really a very good skier. Bessie has learned that the ski resort is offering S (0 <= S <= 100) ski classes throughout the day. Les

【USACO】奶牛跑步2

P1443 - [USACO]奶牛跑步2 Description FJ的N(1 <= N <= 100,000)头奶牛们又兴高采烈地出来运动了!她们在一条无限长的小路上跑步,每头牛起跑的位置都不同,速度也不尽相同. 道路中划出了若干条跑道,以便她们能快速"超车",同一跑道中的任意两头牛都不会出现在相同的位置.不过FJ不愿让任何一头牛更换跑道或者调整速度,他想 知道如果让牛们跑足T(1 <= T <= 1,000,000,000)分钟的话,至少需要多少条跑道才能满

Usaco Open09 Silver

********************************************************************** SILVER PROBLEMS ********************************************************************** Four problems numbered 6 through 9 *********************************************************

COGS——T1588. [USACO FEB04]距离咨询

http://cogs.pro/cogs/problem/problem.php?pid=1588 ★★   输入文件:dquery.in   输出文件:dquery.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 农夫约翰有N(2<=N<=40000)个农场,标号1到N.M(2<=M<=40000)条的不同的垂直或水平的道路连结着农场,道路的长度不超过1000.这些农场的分布就像下面的地图一样,图中农场用F1..F7表示: 每个农场最多能在东西南北

cogs 133. [USACO Mar08] 牛跑步 A*算法

by http://blog.csdn.net/jarily/article/details/8871968/* *算法引入: *在单源点最短路径问题中,实际运用时还需知道最短路径外,次短路或者第三短路; *即要知道多条最短路,并排出其长度增加的顺序,即为K最短路问题; * *算法思想: *单源点最短路径+高级搜索A*; *A*算法结合了启发式方法和形式化方法; *启发式方法通过充分利用图给出的信息来动态地做出决定而使搜索次数大大降低; *形式化方法不利用图给出的信息,而仅通过数学的形式分析;