that_one_nigga_you_k

sapo no parque

Dec 2nd, 2023
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct{
  6.     char nome[31];
  7.     int diversao;
  8.     int aborrecimento;
  9.  
  10. }brinquedo;
  11.  
  12.  
  13. int main(){
  14.  
  15.     char nome_atracao[41];
  16.     int curticao[10]; //armazenar as curtições que o cara pode ter no parque
  17.     int contador = 0;
  18.  
  19.     /*ele pode ir 3 vezes no mesmo brinquedo (3 formas ao todo), ir em 2 brinquedos (3 formas ao todo) e repetindo um deles (2 formas), ir 1 vez em casa brinquedo (1 forma)*/
  20.  
  21.  
  22.     //tudo só vai se repetir 3 vezes
  23.  
  24.     brinquedo parque[3];  //brinquedos do parque de diversão;
  25.  
  26.     for(int i = 0; i < 3; i++){
  27.         scanf(" %[^\n] %d %d", parque[i].nome, &parque[i].diversao, &parque[i].aborrecimento);        
  28.         //scanf(" %d %d", &parque[i].diversao, &parque[i].aborrecimento); //lendo os valores de diversão e chatice de cada brinquedo
  29.     }
  30.  
  31.     for(int j = 0; j < 3; j++){
  32.         int alegria = 0 ;
  33.         for(int i = 0 ; i < 3 ; i++){
  34.             alegria += parque[j].diversao - (i)*(i)*parque[j].aborrecimento; //para os casos em que vai 3 vezes em cada brinquedo
  35.         }
  36.         curticao[j] = alegria; //as primeiras 3 curtições são para o caso que o cidadão vai 3 vezes no mesmo brinquedo
  37.         contador++;
  38.         ////printf("\n%d", contador);
  39.     }
  40.  
  41.     /*agora é a parte muito chata que ele vai uma vez em 1 e 2 vezes em outro*/
  42.  
  43.     /*0, 0, 1 -> 2 vezes no primeiro, 1 vez no segundo*/
  44.  
  45.     int cont = 0;
  46.     for(int i = 0 ; i < 2; i++){
  47.         cont += parque[0].diversao - parque[0].aborrecimento*i*i;
  48.     }
  49.     curticao[contador] = cont + parque[1].diversao;
  50.     contador++;
  51.     ////printf("\n%d", contador);
  52.  
  53.     /*0, 0 , 2 -> 2 vezes no primeiro, 1 vez no terceiro*/
  54.  
  55.     cont = 0;
  56.  
  57.     for(int i = 0; i < 2; i++){
  58.         cont += parque[0].diversao - parque[0].aborrecimento*i*i;
  59.     }
  60.     curticao[contador] = cont + parque[2].diversao;
  61.     contador++;
  62.     ////printf("\n%d", contador);
  63.  
  64.     /*0, 1, 1 -> 2 vezes no segundo, 1 vez no primeiro*/
  65.  
  66.     cont = 0;
  67.  
  68.     for(int i = 0; i < 2; i++){
  69.         cont += parque[1].diversao - parque[1].aborrecimento*i*i;
  70.     }
  71.     curticao[contador] = cont + parque[0].diversao;
  72.     contador++;
  73.     //printf("\n%d", contador);
  74.  
  75.     /*1, 1, 2 -> 2 vezes no segundo, 1 vez no terceiro*/
  76.  
  77.     cont = 0;
  78.  
  79.     for(int i = 0; i < 2; i++){
  80.         cont += parque[1].diversao - parque[1].aborrecimento*i*i;
  81.     }
  82.     curticao[contador] = cont + parque[2].diversao;
  83.     contador++;
  84.     //printf("\n%d", contador);
  85.  
  86.     /*0, 2, 2 -> 2 vezes no terceiro, 1 vez no primeiro*/
  87.  
  88.     cont = 0;
  89.  
  90.     for(int i = 0; i < 2; i++){
  91.         cont += parque[2].diversao - parque[2].aborrecimento*i*i;
  92.     }
  93.     curticao[contador] = cont + parque[0].diversao;
  94.     contador++;
  95.    
  96.     //printf("\n%d", contador);
  97.  
  98.     /*1, 2, 2 -> 2 vezes no terceiro, 1 vez no segundo*/
  99.  
  100.     cont = 0;
  101.  
  102.     for(int i = 0; i < 2; i++){
  103.         cont += parque[2].diversao - parque[2].aborrecimento*i*i;
  104.     }
  105.     curticao[contador] = cont + parque[1].diversao;
  106.     contador++;
  107.     //printf("\n%d", contador);
  108.  
  109.     for(int i = 0; i < 3 ; i++){
  110.         curticao[contador] += parque[i].diversao;  /*a vez que ele vai uma vez em cada*/
  111.     }
  112.     contador++; /*só depois ele itera*/
  113.     //printf("\n%d", contador);
  114.    
  115.  
  116.     // for(int i = 0 ; i < contador ; i++){
  117.     //     printf("\n%d", curticao[i]);
  118.     // }
  119.  
  120.     /*agora é ver os empates, os 3 primeiros só empatam se as diversoes e chatices forem iguais*/
  121.  
  122.     int min_index = 0;
  123.     int min_value = curticao[0];
  124.  
  125.     for(int i = 1; i < contador; i++) {
  126.         if (curticao[i] > min_value || (curticao[i] == min_value && i < min_index)) {
  127.             min_value = curticao[i];
  128.             min_index = i;
  129.         }
  130.     }
  131.  
  132.     printf("\na maior diversao foi: %d\n", min_value);
  133.    
  134.     if(min_index == 0) printf("indo nos brinquedos: %s 3 vezes.", parque[0].nome); /*3 vezes no primeiro input*/
  135.  
  136.     if(min_index == 1) printf("indo nos brinquedos: %s 3 vezes.", parque[1].nome); /*3 vezes no segundo input*/
  137.  
  138.     if(min_index == 2) printf("indo nos brinquedos: %s 3 vezes.", parque[2].nome); /*3 vezes no terceiro input*/
  139.  
  140.     if(min_index == 3) printf("indo nos brinquedos: %s 2 vezes, %s 1 vez.", parque[0].nome, parque[1].nome); /*0, 0, 1 -> 2 vezes no primeiro, 1 vez no segundo*/
  141.  
  142.     if(min_index == 4) printf("indo nos brinquedos: %s 2 vezes, %s 1 vez.", parque[0].nome, parque[2].nome); /*0, 0 , 2 -> 2 vezes no primeiro, 1 vez no terceiro*/
  143.  
  144.     if(min_index == 5) printf("indo nos brinquedos: %s 2 vezes, %s 1 vez.", parque[1].nome, parque[0].nome); /*0, 1, 1 -> 2 vezes no segundo, 1 vez no primeiro*/
  145.  
  146.     if(min_index == 6) printf("indo nos brinquedos: %s 2 vezes, %s 1 vez.", parque[1].nome, parque[2].nome); /*1, 1, 2 -> 2 vezes no segundo, 1 vez no terceiro*/
  147.  
  148.     if(min_index == 7) printf("indo nos brinquedos: %s 2 vezes, %s 1 vez.", parque[2].nome, parque[0].nome); /*0, 2, 2 -> 2 vezes no terceiro, 1 vez no primeiro*/
  149.  
  150.     if(min_index == 8) printf("indo nos brinquedos: %s 2 vezes, %s 1 vez.", parque[2].nome, parque[1].nome); /*1, 2, 2 -> 2 vezes no terceiro, 1 vez no segundo*/
  151.  
  152.     if(min_index == 9) printf("indo nos brinquedos: %s 1 vez, %s 1 vez, %s 1 vez.", parque[0].nome, parque[1].nome, parque[2].nome); /*foi uma vez em cada*/
  153.  
  154.     return 0;
  155. }
Add Comment
Please, Sign In to add comment