Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const int M=(int)1e9+7;
- int ad(int x,int y){
- return (x+y)%M;
- }
- int mul(int x,int y){
- return (x*y)%M;
- }
- int main(){
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- cout.tie(0);
- int t;
- cin>>t;
- while(t--){
- int n;
- cin>>n;
- vector<int>a(n+1);
- for(int i=1;i<=n;i++)
- cin>>a[i];
- int q;
- cin>>q;
- int rtn=sqrt(n)+1;
- vector<vector<int> > dp(n+2,vector<int>(rtn)),dp1(n+2,vector<int>(rtn));
- for(int i=n;i>=1;i--)
- for(int j=1;j<rtn;j++){
- dp[i][j]=ad(a[i],((j+i)<=n?dp[i+j][j]:0));
- dp1[i][j]=mul(a[i],((j+i)<=n?dp1[i+j][j]:1));
- }
- while(q--){
- int c,x,y;
- cin>>c>>x>>y;
- if(y>=rtn){
- if(c==0){
- int ans=0;
- for(int i=x;i<=n;i+=y)
- ans=ad(ans,a[i]);
- cout<<ans<<endl;
- }
- else{
- int ans=1;
- for(int i=x;i<=n;i+=y)
- ans=mul(ans,a[i]);
- cout<<ans<<endl;
- }
- }
- else{
- if(c==0)
- cout<<dp[x][y]<<endl;
- else
- cout<<dp1[x][y]<<endl;
- }
- }
- }
- }
- #include<bits/stdc++.h>
- using namespace std;
- int main(){
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- cout.tie(0);
- int t;
- cin>>t;
- while(t--){
- long long a,b,k,sum;
- cin>>a>>b>>k;
- sum=a+b;
- int res=1;
- while(k>0){
- if(k&1)
- res=(2*res)%sum;
- res=(res*res)%sum;
- k>>=1;
- }
- a=(a*res)%sum;
- b=sum-a;
- cout<<min(a,b)<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement