萌新刚学逆元,求调QWQ
#include <bits/stdc++.h>
using namespace std;
const int mod=1145141;
long long n,m,l,r,ans,a[1000005]={1},inv[1000005]={0,1};
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i],a[i]*=a[i-1]%mod;
for(int i=2;i<=1e6;i++) inv[i]=(long long)(mod-mod/i)*inv[mod%i]%mod;
while(m--){
cin>>l>>r;
ans^=a[r]*inv[a[l-1]]%mod;
}
cout<<ans;
return 0;
}