Clase 1 Junio

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