比赛 2024暑假C班集训E 评测结果 AAWWWWTTTTTTWWTTTTTT
题目名称 相逢是问候 最终得分 10
用户昵称 李奇文 运行时间 37.325 s
代码语言 C++ 内存使用 3.46 MiB
提交时间 2024-07-14 11:09:13
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,p,q,a[50005],c[50005];
long long f(long long a,long long b){
	long long ans=1;
	while(b){
		if(b&1)ans*=a;
		b>>=1;
		a*=a;
	} 
	return ans;
}
int main(){
	freopen("verbinden.in","r",stdin);
	freopen("verbinden.out","w",stdout);
	cin>>n>>m>>p>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		a[i]+=a[i-1];
	}
	for(int i=1;i<=m;i++){
		int g,l,r;
		cin>>g>>l>>r;
		if(g){
			cout<<(a[r]-a[l-1])%p<<endl;
		}else{
			for(int j=l;j<=r;j++){
				int v=f(q,a[j]-a[j-1])-a[j]+a[j-1];
				for(int k=j;k<=n;k++){
					a[k]+=v;
				}
			} 
		}
	}
	return 0;
}