比赛 20251022赛前模拟1 评测结果 WWWWTWTTWW
题目名称 学姐的巧克力盒 最终得分 0
用户昵称 李奇文 运行时间 8.305 s
代码语言 C++ 内存使用 10.09 MiB
提交时间 2025-10-22 11:47:12
显示代码纯文本
#include<bits/stdc++.h>

using namespace std;
const int N=1e6+5;
int n,m,k,p1,p2;
int a[N],f[N];
long long ans[N],res=1;
struct node{
	int l,r,id;
}q[N];
bool cmp(node x,node y){
	return (f[x.l]^f[y.l])?f[x.l]<f[y.l]:((f[x.l]&1)?x.r>y.r:x.r<y.r);
}
int main(){
	freopen("chocolatebox.in","r",stdin);
	freopen("chocolatebox.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n>>m>>k>>p1>>p2;
	if(p2==0){
		int len=sqrt(n);
		for(int i=1;i<=n;i++){
			cin>>a[i];
			f[i]=(i-1)/len+1;
		}
		for(int i=1;i<=m;i++){
			int opt;
			cin>>opt>>q[i].l>>q[i].r;
			q[i].id=i;
		}
		sort(q+1,q+1+m,cmp);
		int l=1,r=0;
		for(int i=1;i<=m;i++){
			int ll=q[i].l,rr=q[i].r;
			while(ll<l) res*=a[--l];
			while(rr>r) res*=a[++r];
			while(ll>l) res/=a[l++];
			while(rr<r) res/=a[r--];
			ans[q[i].id]=res%p1;
		}
		for(int i=1;i<=m;i++){
			cout<<ans[i]<<"\n";
		}
	}
	return 0;
}