Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- int X, N, vip, soma;
- scanf("%d %d", &X, &N);
- int melhor_canal = 1;
- int melhor_minuto = 0;
- int menor_distancia = __INT_MAX__;
- int vip_garantido = 0;
- int sequencia;
- soma = 0;
- vip_garantido = (soma > 10) ? 1 : 0;
- for (int i = 0; i < N; i++) { // itera��o dos canais
- int a , b, distA, distB;
- distA = abs(X-a);
- distB = abs(X-b);
- scanf("%d %d", &a, &b);
- int melhor_canal_menor_distancia = 0;
- int maior_canal_menor_distancia = 0;
- if(a == X){
- melhor_minuto = 1;
- melhor_canal = i + 1;
- vip = a;
- }
- else if( b == X){
- melhor_minuto = 1;
- melhor_canal = i + 1;
- vip = b;
- }
- else if(X < a){
- melhor_minuto = 1;
- melhor_canal = i + 1;
- vip = a;
- }
- else if(X > a && b < X){
- melhor_minuto = 1;
- melhor_canal = i + 1;
- if(distA < distB) vip = a;
- else vip = b;
- }
- else if(b < X && X < a+b){
- melhor_minuto = 1;
- melhor_canal = i + 1;
- if(distB < abs(X - (a+b))) vip = b;
- else vip = a+b;
- }
- for (int j = 1; j <= X && melhor_canal_menor_distancia == 0; j++) { //itera��o dos minutos
- sequencia = a + b;
- int distancia_atual = abs(X - sequencia);
- if (distancia_atual == menor_distancia) { //caso de empate
- if(j+2 > melhor_minuto){ //empatou nos minutos, atualizou tudo menos o minuto
- //atualiza as melhores posi��es
- menor_distancia = distancia_atual;
- melhor_canal = i + 1;
- //melhor_minuto = j+2; menos o minuto
- vip = sequencia;
- }
- if(i+1 >melhor_canal){ // empatou no canal, atualizou tudo
- menor_distancia = distancia_atual;
- melhor_minuto = j+2;
- melhor_canal = i + 1;
- vip = sequencia;
- }
- }
- else if (distancia_atual < menor_distancia) {
- //atualiza as melhores posi��es
- menor_distancia = distancia_atual;
- melhor_canal = i + 1;
- melhor_minuto = j+2;
- vip = sequencia;
- }
- // Atualiza os termos para o pr?ximo passo na sequ�ncia de Fibonacci
- a = b;
- b = sequencia;
- //printf("%d %d %d \n", a, b, j);
- }
- //printf("%d %d \n", a, b);
- }
- soma = 0;
- while (vip > 0) {
- soma += vip % 10;
- vip /= 10;
- }
- if (vip_garantido == 1)
- 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);
- else
- 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);
- return 0;
- }
Add Comment
Please, Sign In to add comment