代码运行问题

灌水区

沉石鱼惊旋 @ 2022-01-15 15:24:54

CF896E,这段代码哪里出了问题,蒟蒻我看不出来,能编译,没结果


by 沉石鱼惊旋 @ 2022-01-15 15:25:07

#include<bits/stdc++.h>
using namespace std;
int a[100001];
int n,m,k,l,r,x,sum,i,mm;
#define getchar() p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++
char buf[1<<21],*p1=buf,*p2=buf;
inline int read()
{
    char c=getchar();int x=0;bool f=0;
    for(;!isdigit(c);c=getchar());
    for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
    return x;
}
int main()
{
    n=read();
    m=read();
    for(i=1;i<=n;i++)
    {
        a[i]=read();
    }
    while(m--)
    {
        k=read();
        l=read();
        r=read();
        x=read();
        if(k==1)
        {
            for(i=l;i<=r;i++)
            {
                a[i]-=(a[i]>x)?x:0;
            }
        }
        if(k==2)
        {
            sum=0;
            for(i=l;i<=r;i++)sum+=(a[i]==x?1:0);
            printf("%d\n",sum);
        }
    }
    return 0;
}


by zhiyangfan @ 2022-01-15 15:32:37

@chenyuxuan__2009 用 fread 的话,输入完成需要加一个 ctrl+Z 表示 EOF 输入才能停止。


by zhiyangfan @ 2022-01-15 15:33:41

就像这样。


by 沉石鱼惊旋 @ 2022-01-15 15:36:26

@zhiyangfan 哦谢谢,别人给的快读代码,自己也不咋懂……现在懂了


|