求助10分代码

回复帖子

@MKL_SCAR 2018-12-08 19:22 回复

RT,除第一个点AC,其他全WA 555

请大佬帮忙看一下蒟蒻的代码 $orz$

献上丑陋的代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
template<typename ReadType>void read(ReadType &n){
    ReadType x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9'){
        if(c=='-')f=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        x=x*10+c-'0';
        c=getchar();
    }
    n=x*f;
}
const int PLUS=25000;
int n,b;
int a[1000001];
int f[1000001];
int d[1000001];
int num[1000001];
int cur,ans;
int main()
{
    read(n);
    read(b);
    for(int i=1;i<=n;++i)
    {
        read(a[i]);
        if(a[i]==b)cur=i;
        if(a[i]<b)f[i]=-1;
        if(a[i]>b)f[i]=1;
    }
    for(int i=cur;i>=1;--i)
    {
        if(i==cur)d[i]=0;
        else{
            d[i]=d[i+1]+f[i];
            if(d[i]==0)ans++;
        }
        if(d[i]!=0)num[d[i]+PLUS]++;
    }
    for(int i=cur;i<=n;++i)
    {
        if(i==cur)d[i]=0;
        else{
            d[i]=d[i-1]+f[i];
            if(d[i]==0)ans++;
        }
    }
    for(int i=cur+1;i<=n;++i)
    {
        ans+=num[-d[i]+PLUS];
    }
    cout<<++ans<<endl;
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。