社区讨论

RE的很迷,求助大佬

P3948数据结构参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi7co125
此快照首次捕获于
2025/11/20 19:30
4 个月前
此快照最后确认于
2025/11/20 19:30
4 个月前
查看原帖
在本地跑三个样例全对,洛谷在线ide跑出来结果和本地不一样。提交全re,求助大佬找错
CPP
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
#define MAXN 80000+10
using namespace std;
ll read(){
	ll out=0,f=1;
	char c=getchar();
	while(c<48||c>57){
		if(c==45) f=-1;
		c=getchar();
	}
	while(c<=57&&c>=48){
		out=(out<<1)+(out<<3)+c-48;
		c=getchar();
	}
	return out*f;
}
void write(ll x){
	if(x<0) x=-x;
	if(x>9) write(x/10);
	putchar(x%10+48);
}
ll a[MAXN];
ll n,mod,min1,max1;
ll sum[MAXN];
int main(){
	register ll opt;
	n=read(),opt=read()+1,mod=read(),min1=read(),max1=read();
	register ll l,r,x;
	register char c;
	while(--opt){
		c=getchar();
		l=read(),r=read();
		if(c=='A'){
			x=read();
			a[l]+=x,a[r+1]-=x;
		}
		else{
			ll ans=0,temp,now=0;
			for(int i=1;i<=r;++i){
				now+=a[i];
				temp=((ll)now*i)%mod;
				if(i>=l&&min1<=temp&&temp<=max1) ++ans;
			}
			write(ans);
			putchar(10);
		}
	}
	for(int i=1;i<=n;++i){
		a[i]+=a[i-1];
		ll temp=((ll)a[i]*i)%mod;
		sum[i]=(min1<=temp&&temp<=max1)?1:0; 
		sum[i]+=sum[i-1];
	}
	opt=read()+1;
	while(--opt){
		l=read();
		r=read();
		write(sum[r]-sum[l-1]);
		putchar(10);
	}
	return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...