现在的位置: 首页 > 综合 > 正文

HDU 4288

2017年11月21日 ⁄ 综合 ⁄ 共 612字 ⁄ 字号 评论关闭

水过了,,,,

听说是一道线段树的题,,,但是这里没有用线段树做,就是在输入的时候就对他排序,删除的时候也按序删除(显然),就酱紫。。。。

原先不知道WA在哪里了,真的弄了好久。然后在一个阳光尚好的早上,在一整排的AC中。。。。终于A掉了。

#include <stdio.h>
#define maxn 100010
#define ll __int64
int que[maxn];
int main()
{
    int n;
    char op[5];
    int x;
    while(scanf("%d",&n)!=EOF)
    {
        int i,j,k;
        int top=0;
        while(n--)
        {
            scanf("%s",op);
            if(op[0]=='a')
            {
                scanf("%d",&x);
                for(i=top;i>0;i--)
                {
                    if(que[i-1]>x) que[i]=que[i-1];
                    else break;
                }
                que[i]=x;
                top++;
            }
            else if(op[0]=='d')
            {
                scanf("%I64d",&x);
                for(i=top-1;i>=0;i--)
                {
                    if(que[i]==x)
                    {
                        for(j=i;j<top-1;j++)
                            que[j]=que[j+1];
                        top--;
                        break;
                    }
                }
            }
            else
            {
                ll sum,tmp;
                sum=tmp=0;
                for(i=2;i<top;i+=5)
                {
                    tmp=que[i];
                    sum+=tmp;
                }
                printf("%I64d\n",sum);
            }
        }
    }
    return 0;
}
【上篇】
【下篇】

抱歉!评论已关闭.