码迷,mamicode.com
首页 > 其他好文 > 详细

HDOJ4699(对顶栈)

时间:2018-04-30 21:13:43      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:size   main   sum   string   code   return   mem   space   mes   

#include<cstdio>
#include<stack>
#include<cstring>
#include<algorithm>
using namespace std;

const int maxn=1000000;

int Q1[maxn];
int Q2[maxn],r1,r2;
int sum[maxn],dp[maxn];

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
    memset(Q1,0,sizeof(Q1));
    memset(Q2,0,sizeof(Q2));
    memset(sum,0,sizeof(sum));
    memset(dp,0,sizeof(dp));
    dp[0]=-(1<<29);
    r1=r2=0;
    char c;
    char p[10];
    int num;
    while(n--){
        scanf("%s",p);
        c=p[0];
        if(c==I){
            scanf("%d",&num);
            Q1[++r1]=num;
            sum[r1]=sum[r1-1]+num;
            dp[r1]=max(dp[r1-1],sum[r1]);
        }
        else if(c==D){
            if(r1==0) continue;
            r1--;
        }
        else if(c==L){
            if(r1==0) continue;
            Q2[++r2]=Q1[r1];
            r1--;
        }
        else if(c==R){
            if(r2==0) continue;
            num=Q2[r2--];
            Q1[++r1]=num;
            sum[r1]=sum[r1-1]+num;
            dp[r1]=max(dp[r1-1],sum[r1]);
        }
        else{
            scanf("%d",&num);
            printf("%d\n",dp[num]);
        }
    }
 }
return 0;
}

 

HDOJ4699(对顶栈)

标签:size   main   sum   string   code   return   mem   space   mes   

原文地址:https://www.cnblogs.com/lmjer/p/8974524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!