Por enquanto cheguei no código abaixo, onde é criado um vetor de n dimensões com range[n] elementos.
Se estiver correto, agora, estou tendo problemas pra entender a parte final da questão:
Até
eu entendi. Depois disso... kkk
#include<stdio.h>
#include<stdlib.h>
int main(){
int n;
scanf("%i",&n);//2
int range[n],sub[n];
for(int i = 0 ; i < n; i++){
scanf("%i",&range[i]); //5 5
}
for(int i = 0 ; i < n; i++){
scanf("%i",&sub[i]); // 0 0
}
listOff(range,sub,n);
return 0;
}
void listOff(int range[], int sub[],int n){
int base;
int aux=1;
int offset = 0;
int* vet;
int* posicao;
for(int i = 0 ; i < n ; i++){
aux*= range[i];
}
vet = (int*) malloc(aux*sizeof(int));
base = vet;
for(int i = 0 ; i < n ; i++){
offset=range[i]*offset+sub[i];
}
vet[0] = -3;
posicao = base+(offset*sizeof(int));
printf("%i",*posicao); //-3
free(vet);
}