Code: Select all
CODE REMOVED
Moderator: Board moderators
Code: Select all
CODE REMOVED
The quoted lines look a bit strange as cases is not initialised before constructing the arrays.Gaizka wrote:Code: Select all
int main(int argc, char *argv[]){ int cases; int* query=new int[cases]; int** numbers=new int*[cases]; int** values=new int*[cases]; cin >> cases; .... }
Code: Select all
#include <iostream>
#define S 36
void inicio(int a[], int n);
int menorCosto(int a[]);
int costoN(int n, int base, int costo[]);
int main()
{
int casos=0, c=0;
int *costo, *base;
costo=new int[S];
base=new int[S];
scanf("%d",&casos);
while(casos>0)
{
c++;
printf("Case %d:\n",c);
inicio(costo,S);
int x=0, querys=0;
while(x<S)
{
scanf("%d",&costo[x]);
x++;
}
x=0;
scanf("%d",&querys);
while(querys>0)
{
int n=0, menor=0;
scanf("%d",&n);
printf("Cheapest base(s) for number %d:",n);
x=1;
inicio(base,S);
while(x<S)
{
x++;
base[x]=costoN(n,x,costo);
}
menor=menorCosto(base);
x=1;
while(x<S)
{
x++;
if(base[x]==menor)
printf(" %d",x);
}
querys--;
if(querys>0)
printf("\n");
}
casos--;
if(casos>0)
printf("\n\n");
}
return 0;
}
int costoN(int n, int base, int c[])
{
int s=0;
while(n>0)
{
s+=c[n%base];
n/=base;
}
return s;
}
void inicio(int a[], int n)
{
while(n>=0)
{
a[n]=0;
n--;
}
}
int menorCosto(int a[])
{
int x=2, c=-1;
while(x<S)
{
if(a[x]<c||c==-1)
c=a[x];
x++;
}
return c;
}