that_one_nigga_you_k

ingressos

Nov 10th, 2023 (edited)
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.36 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5.     int X, N, vip, soma;
  6.  
  7.     scanf("%d %d", &X, &N);
  8.  
  9.     int melhor_canal = 1;
  10.     int melhor_minuto = 0;
  11.     int menor_distancia = __INT_MAX__;
  12.     int vip_garantido = 0;
  13.     int sequencia;
  14.    
  15.  
  16.     soma = 0;  
  17.  
  18.     vip_garantido = (soma > 10) ? 1 : 0;
  19.  
  20.     for (int i = 0; i < N; i++) { // itera��o dos canais
  21.         int a , b, distA, distB;
  22.  
  23.         distA = abs(X-a);
  24.         distB = abs(X-b);
  25.  
  26.         scanf("%d %d", &a, &b);
  27.  
  28.         int melhor_canal_menor_distancia = 0;
  29.         int maior_canal_menor_distancia = 0;
  30.  
  31.         if(a == X){
  32.             melhor_minuto = 1;
  33.             melhor_canal = i + 1;
  34.             vip = a;
  35.         }
  36.  
  37.         else if( b == X){
  38.             melhor_minuto = 1;
  39.             melhor_canal = i + 1;
  40.             vip = b;
  41.         }
  42.  
  43.         else if(X < a){
  44.             melhor_minuto = 1;
  45.             melhor_canal = i + 1;
  46.             vip = a;
  47.         }
  48.  
  49.         else if(X > a && b < X){
  50.             melhor_minuto = 1;
  51.             melhor_canal = i + 1;
  52.  
  53.             if(distA < distB) vip = a;
  54.             else vip = b;
  55.  
  56.         }
  57.  
  58.         else if(b < X && X < a+b){
  59.             melhor_minuto = 1;
  60.             melhor_canal = i + 1;
  61.  
  62.             if(distB < abs(X - (a+b))) vip = b;
  63.             else vip = a+b;
  64.         }
  65.  
  66.         for (int j = 1; j <= X && melhor_canal_menor_distancia == 0; j++) { //itera��o dos minutos
  67.             sequencia = a + b;
  68.  
  69.             int distancia_atual = abs(X - sequencia);
  70.  
  71.             if (distancia_atual == menor_distancia) { //caso de empate
  72.  
  73.                 if(j+2 > melhor_minuto){ //empatou nos minutos, atualizou tudo menos o minuto
  74.                     //atualiza as melhores posi��es
  75.                     menor_distancia = distancia_atual;
  76.                     melhor_canal = i + 1;
  77.                     //melhor_minuto = j+2; menos o minuto
  78.                     vip = sequencia;
  79.                    
  80.                 }
  81.  
  82.                 if(i+1 >melhor_canal){ // empatou no canal, atualizou tudo
  83.                     menor_distancia = distancia_atual;
  84.                     melhor_minuto = j+2;
  85.                     melhor_canal = i + 1;
  86.                     vip = sequencia;
  87.                 }
  88.                
  89.             }
  90.            
  91.  
  92.             else if (distancia_atual < menor_distancia) {
  93.                 //atualiza as melhores posi��es
  94.                 menor_distancia = distancia_atual;
  95.                 melhor_canal = i + 1;
  96.                 melhor_minuto = j+2;
  97.                 vip = sequencia;
  98.                
  99.             }
  100.  
  101.             // Atualiza os termos para o pr?ximo passo na sequ�ncia de Fibonacci
  102.            
  103.             a = b;
  104.             b = sequencia;
  105.  
  106.             //printf("%d %d %d \n", a, b, j);
  107.         }
  108.  
  109.         //printf("%d %d \n", a, b);
  110.     }
  111.  
  112.     soma = 0;
  113.  
  114.     while (vip > 0) {
  115.         soma += vip % 10;
  116.         vip /= 10;
  117.     }
  118.  
  119.     if (vip_garantido == 1)
  120.         printf("Xupenio, para ir ao lulupalooza vc deve entrar no canal %d e sera chamado mais ou menos no minuto %d e com o VIP garantido!!!\n", melhor_canal, melhor_minuto);
  121.     else
  122.         printf("Xupenio, para ir ao lulupalooza vc deve entrar no canal %d e sera chamado mais ou menos no minuto %d, mas o ingresso VIP não vai rolar :( \n", melhor_canal, melhor_minuto);
  123.  
  124.     return 0;
  125. }
Add Comment
Please, Sign In to add comment