zoukankan      html  css  js  c++  java
  • AIM Tech Round 5 (rated, Div. 1 + Div. 2) D(SET,思维)

    #include<bits/stdc++.h>
    using namespace std;
    const long long mod = 1e9+7;
    char s[370007][27];
    long long a[370007];
    set<long long>st;
    int main(){
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s%lld",s[i],&a[i]);
        }
        long long tmp=1;
        long long ans=1;
        long long mn=0,mx=1e18;
        st.insert(mn),st.insert(mx);
        for(int i=1;i<=n;i++){
            if(s[i][1]=='D'){
                st.insert(a[i]);//扔进set
                if(a[i]<=mx&&a[i]>=mn)
                    tmp++;//最后一个accepted之后的add有tmp种情况,假设有三个ADD(000,001,011,111)0表示BUY吗,1表示SELL,比ADD的个数多1
            }
            else{
                if(a[i]<mn||a[i]>mx)
                    ans=0;//不符题意,best offer的报价应该在先进的报价范围之内
                else if(a[i]!=mn&&a[i]!=mx)
                    ans*=2,ans%=mod;//可buy可sell
                tmp=1;
                st.erase(a[i]);//所有的报价都是独一无二的
                auto it=st.upper_bound(a[i]);//找到略大于它的,lowerb_bound也行,找寻的位置都是一样的
                mx=*it;//范围最大值
                mn=*(--it);//范围最小值
            }
        }
        printf("%lld",ans*tmp%mod);
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    解决Chrome 70及以上版本的证书问题:Failed to load resource: net::ERR_CERT_SYMANTEC_LEGACY
    VUE使用axios数据请求时报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法
    生辰八字推算
    OneNote巧妙设置标题
    Kibana安装与介绍
    Logstash入门简介
    Metricbeat入门简介
    FileBeats入门简介
    ElasticSearch集群部署
    ElasticSearch安装与介绍
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10277114.html
Copyright © 2011-2022 走看看