| 比赛 |
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;
}