Stavo cercando di fare il subtask 3 dove D=0, quindi semplicemente B[i] sarà A[i] elevato a K che sarebbe il numero di volte che devono essere svolte le operazioni; però mi da errore nell’output
#include <vector>
#include <iostream>
#include<stdlib.h>
#include<math.h>
using namespace std;
vector<int> execute(int N, int K, int D, vector<int> A) {
vector<int> B(N);
long long int gg=0;
long long int mod=1000000007;
for(int i=0;i<N;i++)
B[i]=1;
if(D==0) //questa è la parte che dovrebbe risolvere il subtask 3
{
long long int ris=0;
for(int i=0;i<N;i++)
{
A[i]%mod;
ris=pow(A[i],K);
B[i]=((B[i]%mod)*(ris%mod))%mod;
}
}
else
{
for(int l=0;l<K;l++)
{
for(int i=0;i<N;i++)
{
A[i]=A[i]%mod;
B[i]=B[i]%mod;
B[i]=((B[i]%mod)*(A[i]%mod))%mod;
}
for(int j=0;j<D;j++)
{
gg=A[N-1]%mod;
for(int q=N-1;q>=1;q--)
{
A[q]=A[q-1]%mod;
}
A[0]=gg%mod;
}
}
}
for(int i=0;i<N;i++)
{
B[i]=B[i]%mod;
}
return B;
}