Subo los programas vistos en clase
problema 10530
#include <stdio.h>
#include <string.h>
char hash[11];
main(){
int n,i,honesto=1;
char line[20];
while(gets(line), sscanf(line, "%d",&n)!=EOF&&n!=0){
gets(line);
if(strcmp(line,"too high")==0){
if(hash[n]==2)honesto=0;
for(i=n;i<=10;i++)hash[i]=1;
}
else if(strcmp(line,"too low")==0){
if(hash[n]==1)honesto=0;
for(i=n;i>=1;i--)hash[i]=2;
}
else{
printf("%s\n",( honesto==1 && hash[n] == 0 )?"Stan may be honest":"Stan is dishonest");
memset(hash,0,sizeof(hash));
honesto=1;
}
}
retu
problema: 11005
# include <stdio.h>
# include <string.h>
int cost[37];
int costPerBase[37];
main(){
int ncases, cases, nquery, minValue, x, base;
long long num, numtmp;
for( scanf("%d", &ncases), cases = 1; cases <= ncases ; cases++ ){
for( x = 0; x < 36; x++) scanf("%d", &cost[ x ]);
if( cases != 1) printf("\n");
printf("Case %d:\n", cases);
scanf("%d", &nquery);
for( x = 0; x < nquery ; x++){
scanf("%lld", &num);
memset(costPerBase, 0, sizeof(costPerBase));
minValue = 10000000;
for( base = 2; base <= 36; base++){
numtmp = num;
while( numtmp > 0 ){
costPerBase[ base ] += cost[ numtmp % base ];
numtmp /= base;
}
if(costPerBase[base] < minValue) minValue = costPerBase[base];
}
printf("Cheapest base(s) for number %lld:", num);
for( base = 2; base <= 36; base++ )
if( costPerBase[base] == minValue) printf(" %d", base);
printf("\n");
}
}
return 0;
}
Deja un comentario