快读函数有局限?
  • 板块学术版
  • 楼主Nebulary
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/15 22:24
  • 上次更新2023/11/2 13:31:41
查看原帖
快读函数有局限?
760314
Nebulary楼主2023/10/15 22:24

模拟赛T1错误代码

//#pragma GCC optimize(2)
#include<bits/stdc++.h>
#define reg register
#define ll long long
#define in inline
using namespace std;
int read(){
	int x=0,f=1;
	char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-')	f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x*f;
}
void write(ll x){
	if(x<0){
		putchar('-');
		x=-x;
	}
	if(x>9)	write(x/10);
	putchar(x%10+'0');
	return ;
}
const int MAXN=5*1e5+2,INF=1<<30;
int n,q,m;
ll bef_1[MAXN],aft_0[MAXN];
vector<int > a,b,c,sum_b;
bool aim[MAXN];
int main(){
/*    freopen("reserve8.in","r",stdin);
    freopen("reserve8.out","w",stdout);*/
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
    cin>>n;
    a.push_back(0),b.push_back(0),c.push_back(0),sum_b.push_back(0);
    for(reg int i=1;i<=n;i++){
        int tmp;
        cin>>tmp;
        a.push_back(tmp);
    }
    for(reg int i=1;i<=n;i++){
        int tmp;
        cin>>tmp;
        b.push_back(tmp);
        sum_b.push_back(sum_b[i-1]+b[i]);
    }
    for(reg int i=1;i<=n;i++){
        int tmp;
        cin>>tmp;
        c.push_back(tmp);
    }
    cin>>q;
    while(q--){
        cin>>m;
        ll now=INF;
        bef_1[0]=0,aft_0[n+1]=0;
        memset(aim,0,sizeof(aim));
        for(reg int i=1;i<=m;i++){
            int tmp;
            cin>>tmp;
            aim[tmp]=1;
        }
        for(reg int i=1;i<=n;i++){
            bef_1[i]=bef_1[i-1]+(aim[i]?1:0)*c[i];
        }
        for(reg int i=n;i>=1;i--){
            aft_0[i]=aft_0[i+1]+(aim[i]?0:1)*b[i];
        }
        for(reg int i=n;i>=0;i--){
            ll tmp=a[i]+bef_1[i]+aft_0[i+1];
            if(tmp<now) now=tmp;
        }
        write(now);
        putchar('\n');
    }
	return 0;
}

用cin交是60,但换成read()就是全WA

是类似于空格导致的吗

2023/10/15 22:24
加载中...