Mostrando postagens com marcador PROBLEMA. Mostrar todas as postagens
Mostrando postagens com marcador PROBLEMA. Mostrar todas as postagens

quinta-feira, 25 de outubro de 2018

URI PROBLEMA 1133 - Resto da Divisão SOLUÇÃO EM C

URI Online Judge | 1133

Resto da Divisão

Adaptado por Neilor Tonin, URI  Brasil
Timelimit: 1
Escreva um programa que leia 2 valores X e Y e que imprima todos os valores entre eles cujo resto da divisão dele por 5 for igual a 2 ou igual a 3.

Entrada

O arquivo de entrada contém 2 valores positivos inteiros quaisquer, não necessariamente em ordem crescente.

Saída

Imprima todos os valores conforme exemplo abaixo, sempre em ordem crescente.



URI Online Judge | 1133

Rest of a Division

Adapted by Neilor Tonin, URI  Brazil
Timelimit: 1
Write a program that reads two integer numbers X and Y. Print all numbers between X and Y which dividing it by 5 the rest is equal to 2 or equal to 3.

Input

The input file contains 2 any positive integers, not necessarily in ascending order.

Output

Print all numbers according to above description, always in ascending order.

#include<stdio.h>
int main(){
    int X, Y, cont;
    scanf("%d%d", &X,&Y);
    if (X > Y) {
       for (cont = Y+1 ; cont < X; cont++) {
       if (cont % 5 == 2 || cont % 5 == 3) {
         printf("%d\n", cont);}
            }
        }else if(X < Y){
        for (cont = X+1 ; cont < Y; cont++) {
             if (cont % 5 == 2 || cont % 5 == 3) {
                    printf("%d\n", cont);
                }
           }
    }

}

URI PROBLEMA 1115 - Quadrante SOLUÇÃO EM C

URI Online Judge | 1115

Quadrante

Adaptado por Neilor Tonin, URI  Brasil
Timelimit: 1
Escreva um programa para ler as coordenadas (X,Y) de uma quantidade indeterminada de pontos no sistema cartesiano. Para cada ponto escrever o quadrante a que ele pertence. O algoritmo será encerrado quando pelo menos uma de duas coordenadas for NULA (nesta situação sem escrever mensagem alguma).

Entrada

A entrada contém vários casos de teste. Cada caso de teste contém 2 valores inteiros.

Saída

Para cada caso de teste mostre em qual quadrante do sistema cartesiano se encontra a coordenada lida, conforme o exemplo.



URI Online Judge | 1115

Quadrant

Adapted by Neilor Tonin, URI  Brazil
Timelimit: 1
Write a program to read the coordinates (X, Y) of an indeterminate number of points in Cartesian system. For each point write the quadrant to which it belongs. The program finish when at least one of two coordinates is NULL (in this situation without writing any message).

Input

The input contains several tests cases. Each test case contains two integer numbers.

Output

For each test case, print the corresponding quadrant which these coordinates belong, as in the example.

#include <stdio.h>

int main()
{
    int x;
    int y;

    scanf("%d", &x);
    scanf("%d", &y);

    if(x == 0 || y == 0){
            return 0;
    }

    while(x != 0 || y != 0){

        if(x > 0 && y > 0){
            printf("primeiro\n");
        }
        if(x < 0 && y > 0){
            printf("segundo\n");
        }
        if(x < 0 && y < 0){
            printf("terceiro\n");
        }
        if(x > 0 && y < 0){
            printf("quarto\n");
        }

        scanf("%d", &x);
        scanf("%d", &y);

        if(x == 0 || y == 0){
            return 0;
        }
    }

    return 0;
}

URI PROBLEMA 1117 - Validação de Nota SOLUÇÃO EM C

URI Online Judge | 1118

Várias Notas Com Validação

Por Neilor Tonin, URI  Brasil
Timelimit: 1
Escreva um programa para ler as notas da primeira e a segunda avaliação de um aluno. Calcule e imprima a média semestral. O programa só deverá aceitar notas válidas (uma nota válida deve pertencer ao intervalo [0,10]). Cada nota deve ser validada separadamente.
No final deve ser impressa a mensagem “novo calculo (1-sim 2-nao)”, solicitando ao usuário que informe um código (1 ou 2) indicando se ele deseja ou não executar o algoritmo novamente, (aceitar apenas os código 1 ou 2). Se for informado o código 1 deve ser repetida a execução de todo o programa para permitir um novo cálculo, caso contrário o programa deve ser encerrado.

Entrada

O arquivo de entrada contém vários valores reais, positivos ou negativos. Quando forem lidas duas notas válidas, deve ser lido um valor inteiro . O programa deve parar quando o valor lido para este X for igual a 2.

Saída

Se uma nota inválida for lida, deve ser impressa a mensagem “nota invalida”. Quando duas notas válidas forem lidas, deve ser impressa a mensagem “media = ” seguido do valor do cálculo.
Antes da leitura de X deve ser impressa a mensagem "novo calculo (1-sim 2-nao)" e esta mensagem deve ser apresentada novamente se o valor da entrada padrão para X for menor do que 1 ou maior do que 2, conforme o exemplo abaixo.
A média deve ser impressa com dois dígitos após o ponto decimal.



URI Online Judge | 1117

Score Validation

Adapted by Neilor Tonin, URI  Brazil
Timelimit: 1
Write a program that reads two scores of a student. Calculate and print the average of these scores. Your program must accept just valid scores [0..10]. Each score must be validated separately.

Input

The input file contains many floating-point numbers​​, positive or negative. The program execution will be finished after the input of two valid scores.

Output

When an invalid score is read, you should print the message "nota invalida".
After the input of two valid scores, the message "media = " must be printed followed by the average of the student. The average must be printed with 2 numbers after the decimal point.






#include <stdio.h>

int main()

{

double a,b,c,d;

c=0,d=0;

while(1)

{

if(d==2)

break;

scanf("%lf", &a);

if(a>=0 && a<=10)

{

d++;

c+=a;

}

else

printf("nota invalida\n");

}

b=c/2.00;

printf("media = %.2lf\n", b);

return 0;

}

URI PROBLEMA 1173 - Preenchimento de Vetor I SOLUÇÃO EM C

URI Online Judge | 1173

Preenchimento de Vetor I

Adaptado por Neilor Tonin, URI  Brasil
Timelimit: 1
Leia um valor e faça um programa que coloque o valor lido na primeira posição de um vetor N[10]. Em cada posição subsequente, coloque o dobro do valor da posição anterior. Por exemplo, se o valor lido for 1, os valores do vetor devem ser 1,2,4,8 e assim sucessivamente. Mostre o vetor em seguida.

Entrada

A entrada contém um valor inteiro (V<=50).

Saída

Para cada posição do vetor, escreva "N[i] = X", onde i é a posição do vetor e X é o valor armazenado na posição i. O primeiro número do vetor N (N[0]) irá receber o valor de V.



URI Online Judge | 1173

Array fill I

Adapted by Neilor Tonin, URI  Brazil
Timelimit: 1
Read a number and make a program which puts this number in the first position of an array N[10]. In each subsequent position, put the double of the previous position. For example, if the input number is 1, the array numbers ​​must be 1,2,4,8, and so on.

Input

The imput contains an integer number (V < 50).

Output

Print the stored number of each array position, in the form "N[i] = X", where i is the position of the array and x is the stored number at the position i. The first number for X is V.

#include <stdio.h>
int main()
{
    int n[10], a, v;
    scanf("%d", &v);
    for(a=0; a<=9; a++)
    {
        n[a]=v;
        printf("N[%d] = %d\n",a,v);
        v*=2;
    }
    return 0;
}

URI PROBLEMA 1323 - Feynman SOLUÇÃO EM C

URI Online Judge | 1323

Feynman

Por Inês Kereki  Uruguai
Timelimit: 1
Richard Phillips Feynman era um físico americano muito famoso e ganhador do Prêmio Nobel de Física. Ele trabalhava em física teórica e também foi pioneiro no campo da computação quântica. Ele visitou a América do Sul por dez meses, dando palestras e aproveitando a vida nos trópicos. Ele também é conhecido pelos livros "Surely You’re Joking, Mr. Feynman!" e "What Do You Care What Other People Think?", que inclui algumas de suas aventuras abaixo do equador.
Sua paixão da vida inteira era resolver e criar quebra-cabeças, trancas e códigos. Recentemente, um fazendeiro idoso da América do Sul, que hospedou o jovem físico em 1949, achou alguns papéis e notas que acredita-se terem pertencido a Feynman. Entre anotações sobre mesóns e eletromagnetismo, havia um guardanapo onde ele escreveu um simples desafio: "quantos quadrados diferentes existem em um quadriculado de N x N quadrados?".
No mesmo guardanapo havia um desenho, que está reproduzido abaixo, mostrando que para N = 2, a resposta é 5.

Entrada

A entrada contém diversos casos de teste. Cada caso de teste é composto de uma única linha, contendo apenas um inteiro N, representando o número de quadrados em cada lado do quadriculado (1 ≤ N ≤ 100).
O final da entrada é indicado por uma linha contendo apenas um zero.

Saída

Para cada caso de teste na entrada, seu programa deve imprimir uma única linha, contendo o número de diferentes quadrados para a entrada correspondente.



#include <stdio.h>
int main()
{
    int a,b;
    while(1)
    {
        scanf("%d", &a);
        if(a==0) break;
        else b=(a*(a+1)*((2*a)+1))/6;
        printf("%d\n",b);
    }
    return 0;
}

URI PROBLEMA 1170 - Blobs SOLUÇÃO EM C

URI Online Judge | 1170

Blobs

Adaptado por Neilor Tonin, URI  Brasil
Timelimit: 1
No planeta Alpha vive a criatura Blobs, que come precisamente 1/2 de seu suprimento de comida disponível todos os dias. Escreva um algoritmo que leia a capacidade inicial de suprimento de comida (em Kg), e calcule quantos dias passarão antes que Blobs coma todo esse suprimento até restar um quilo ou menos.

Entrada

A primeira linha de entrada contem um único inteiro N (1 ≤ N ≤ 1000), indicando o número de casos de teste. As Nlinhas seguintes contém um valor de ponto flutuante C (1 ≤ C ≤ 1000) correspondente à quantidade de comida disponível para Blobs.

Saída

Para cada caso de teste, imprima uma linha contendo o número de dias que Blobs irá demorar para comer todo seu suprimento de comida, seguido da palavra "dias".



#include <stdio.h>

int main(){
    int n, dias, i;
    float x;
    
    scanf("%d", &n);
    for(i = 0; i < n; i++){
            scanf("%f", &x);
            dias = 0;
            while(x > 1){
                    x /= 2;
                    dias++;
            }
            printf("%d dias\n", dias);
    }
    
    return 0;
}

URI PROBLEMA 1026 - Carrega ou não Carrega? SULUÇÃO EM C

URI Online Judge | 1026

Carrega ou não Carrega?

Por Monirul Hasan Tomal, SEU  Bangladesh
Timelimit: 2
6+9=15 parece ok. Mas como pode estar certo 4+6=2?
Veja só. Mofiz trabalhou duro durante seu curso de Eletrônica Digital, mas quando lhe foi solicitado que implementasse um somador de 32 bits como exame no laboratório, ele acabou fazendo algum erro na parte de projeto. Depois de vasculhar seu projeto por uma hora e meia, ele encontrou seu erro. Ele estava fazendo soma de bits, mas seu carregador de bit (carry) sempre apresentava como saída o valor zero. Portanto,
4  = 00000000 00000000 00000000 00000100
+6 = 00000000 00000000 00000000 00000110
----------------------------------------
2  = 00000000 00000000 00000000 00000010

Claro que já é uma boa coisa ele finalmente ter encontrado o seu erro, mas isso foi muito tarde. Considerando seu esforço durante o curso, o instrutor deu a ele mais uma chance: Mofiz teria que escrever um programa eficiente que pegaria 2 valores decimais de 32 bits sem sinal como entrada e deveria produzir um número de 32 bits sem sinal como saída, ou seja, somando do mesmo modo como o circuito faz.

Entrada

Em cada linha de entrada haverá um par de inteiros separado por um único espaço. A entrada termina com EOF.

Saída

Para cada linha de entrada, o programa deverá fornecer uma linha de saída, que é o valor após somar dois números no modo “Mofiz”.



#include<stdio.h>
int main()
{
   int unsigned long  a,b,c;

   while(scanf("%lu %lu",&a,&b)==2){
     c = (a^b);
   printf("%lu\n",c);
 }
    return 0;
}

URI PROBLEMA 1943 - Top N SOLUÇÃO EM C

URI Online Judge | 1943

Top N

Por Cristhian Bonilha, UTFPR BR Brazil
Timelimit: 1
Recentemente aconteceu a fase regional da Maratona de Programação da SBC, onde mais de 600 times participaram em mais de 40 sedes diferentes pelo Brasil. Seu amigo participou da competição, e quando questionado sobre sua colocação lhe disse: “Ficamos no top 10”.
Você ficou feliz pelo seu amigo, mas não pode deixar de ficar curioso sobre qual foi sua real colocação. “Top 10” poderia indicar qualquer posição entre primeiro e décimo colocado, porém se ele estivesse em primeiro provavelmente teria dito “Top 1”, se estivesse em segundo ou terceiro provavelmente teria dito “Top 3”, e se estivesse em quarto ou quinto provavelmente teria dito “Top 5”. Logo, sua real colocação foi entre sexto e décimo, pois as pessoas geralmente se colocam na menor categoria a qual pertencem.
Você reuniu então todas as categorias de colocações que as pessoas mais usam: 1, 3, 5, 10, 25, 50 e 100. Dada uma colocação K, diga o número da menor categoria que esta colocação pertence.

Entrada

Cada caso de teste contém um inteiro K, representando uma colocação (1 ≤ K ≤ 100).

Saída

Para cada caso de teste imprima uma linha contendo a frase “Top N”, e substitua a letra N pelo número da menor categoria que a colocação K pertence.



#include <stdio.h>

int main()
{
    int K;

    scanf("%d", &K);

    if(K == 1){
        printf("Top 1\n");
    }
    else if(K > 1 && K <= 3){
        printf("Top 3\n");
    }
    else if(K > 3 && K <= 5){
        printf("Top 5\n");
    }
    else if(K > 5 && K <= 10){
        printf("Top 10\n");
    }
    else if(K > 10 && K <= 25){
        printf("Top 25\n");
    }
    else if(K > 25 && K <= 50){
        printf("Top 50\n");
    }
    else{
        printf("Top 100\n");
    }

    return 0;
}

URI PROBLEMA 1329 - Cara ou Coroa SOLUÇÃO EM C

URI Online Judge | 1329

Cara ou Coroa

Maratona de Programacao da SBC 2004, Warm-Up  Brasil
Timelimit: 1
João e Maria são amigos desde que se conheceram na creche. Desde então, eles compartilham uma rotina de brincadeiras: todas as vezes que eles se encontram, eles jogam Cara ou Coroa com uma moeda, e quem ganhar tem o privilégio de decidir quais brincadeiras eles irão jogar durante o dia. Maria sempre escolhe cara, e João sempre escolhe coroa.
Hoje em dia eles estão na faculdade, mas continuam sendo bons amigos. Sempre que se encontram, eles ainda jogam Cara ou Coroa, e o vencedor decide que filme assistir, ou em que restaurante jantar, e assim por diante.
Ontem Maria contou a João que ela guarda um registro de todas as vezes que eles jogaram, desde os tempos da creche. João ficou espantado. Porém João está estudando Ciência da Computação e decidiu que essa era uma boa oportunidade para mostrar a Maria suas habilidades em programação, escrevendo um programa que mostrasse o número de vezes que cada um deles venceu ao longo de todos esses anos.

Entrada

A entrada contém vários casos de teste. A primeira linha de um caso de teste contém um único inteiro N indicando o número de vezes jogadas (1 ≤ N ≤ 10000). A linha seguinte contém N inteiros Ri, separados por um espaço, descrevendo a lista de resultados. Se Ri = 0 então Maria venceu o iésimo jogo, se Ri = 1 então João venceu o iésimo jogo (1 ≤ i ≤ N). O fim da entrada é indicado por N = 0.

Saída

Para cada caso de teste na entrada, seu programa deverá escrever uma linha contendo a sentença "Mary won Xtimes and John won Y times" ("Maria venceu X vezes e Joao venceu Y vezes"), onde 0 ≤ X e 0 ≤ Y.



#include <stdio.h>

int main()
{
    int N, i, R, cont1 = 0, cont2 = 0;

    while(scanf("%d", &N) != 0){
            cont1 = 0, cont2 = 0;
        if(N == 0){
            break;
        }
        for(i = 0; i < N; i++){
            scanf("%d", &R);

            if(R == 0){
                cont1++;
            }
            else if(R == 1){
                cont2++;
            }
        }
        printf("Mary won %d times and John won %d times\n", cont1, cont2);

    }



    return 0;
}

URI PROBLEMA 1542 - Lendo Livros SOLUÇÃO EM C

URI Online Judge | 1542

Lendo Livros

Por Normandes Jr, UFU BR Brazil
Timelimit: 3
Você começou a competir com seu amigo para ver quem consegue ler mais livros em menos tempo. Seu amigo lia muito mais que você, até o dia que você percebeu que ele lia somente livros muito finos.
Então você resolveu contar as páginas dos livros, aumentando também a quantidade de páginas lidas por dia. Agora você lê 5 páginas por dia e termina 16 dias antes do que se estivesse lendo 3 páginas por dia. Neste cenário, quantas páginas tem o livro?

Entrada

A entrada é composta de vários casos de testes. Cada caso de teste é composto de três números Q (0 < Q < 20), D(0 < D < 20) e P (0 < P < 20) separados por um espaço. Sendo que Q é a quantidade de páginas lidas por dia. D é o número de dias que você adiantaria a leitura caso estivesse lendo a quantidade de páginas informada pelo número P. Um único valor zero indica o fim da entrada.

Saída

Para cada caso de teste deverá ser impresso a quantidade de páginas do livro. (Utilize o plural corretamente e não use acentos). Este número deverá ser um inteiro, o qual representa a quantidade de página. Este valor deverá ser truncado caso necessário.



#include <stdio.h>

int main()
{
    int Q, D, P, page;

    while(scanf("%d", &Q) != 0){
        if(Q == 0){
            break;
        }
        scanf("%d %d", &D, &P);
        page = (Q * D * P) / (P - Q);

        if(page > 1){
            printf("%d paginas\n", page);
        }
        else{
            printf("%d pagina\n", page);
        }
    }

    return 0;
}

URI PROBLEMA 1709 - Baralho Embaralhado SOLUÇÃO EM C

URI Online Judge | 1709

Baralho Embaralhado

Por Vinícius "Cabessa" Fernandes dos Santos BR Brazil
Timelimit: 1
Um baralho contém um número par 2n de cartas a1, a2,..., a2n, todas distintas (a1 < a2 ... < a2n). O baralho encontra-se perfeitamente ordenado, ou seja, a primeira carta é a1, a segunda carta é a2, e assim por diante, até a última carta, que é a2n.
Um croupier então executa repetidamente um procedimento de embaralhar, que consiste de dois passos:
  1. O baralho é divido ao meio;
  2. As cartas das duas metades são então intercaladas, de maneira que se a sequência de cartas do baralho no início do passo 1 é x1, x2, ..., x2n, então ao final do passo 2 a sequência de cartas se torna xn+1, x1, xn+2, x2,..., x2n, xn.
Dado o número de cartas do baralho, escreva um programa que determine quantas vezes o procedimento de embaralhar descrito acima deve ser re petido de forma que o baralho volte a ficar ordenado.

Entrada

A única linha da entrada contém um inteiro par P (2 ≤ P ≤ 2 x 105 ), indicando o número de cartas do baralho (note que o valor P corresponde ao valor 2n na descrição acima).

Saída

Seu programa deve produzir uma única linha contendo um único inteiro, o número mínimo de vezes que o processo de embaralhamento deve ser repetido para que o baralho fique novamente ordenado.



#include <stdio.h>

int main()
{
    int P, a, b;

    while(scanf("%d", &P) != EOF){
        a = 2;
        b = 1;

        while(a != 1){
            if(a <= P/2){
                a += a;
            }
            else{
                a -= (P - a + 1);
            }
            b++;
        }
        printf("%d\n", b);
    }

    return 0;
}

URI PROBLEMA 1708 - Volta SOLUÇÃO EM C

URI Online Judge | 1708

Volta

Por Vinícius "Cabessa" Fernandes dos Santos BR Brazil
Timelimit: 1
No automobilismo é bastante comum que o líder de uma prova, em determinado momento, ultrapasse o último colocado. O líder, neste momento, está uma volta à frente do último colocado, que se torna, assim, um retardatário. Neste problema, dados os tempos que o piloto mais rápido e o piloto mais lento levam para completar uma volta, você deve determinar em que volta o último colocado se tornará um retardatário, ou seja, será ultrapassado pelo líder. Você deve considerar que, inicialmente, eles estão lado a lado, na linha de partida do circuito, ambos no início da volta de número 1 (a primeira volta da corrida); e que uma nova volta se inicia sempre depois que o líder cruza a linha de partida.

Entrada

A única linha da entrada contém dois números inteiros X e Y (1 ≤ X < Y ≤ 10000), os tempos, em segundos, que o piloto mais rápido e o piloto mais lento levam para completar uma volta, respectivamente.

Saída

Seu programa deve produzir uma única linha, contendo um único inteiro: a volta em que o piloto mais lento se tornará um retardatário.



#include <stdio.h>

int main()
{
    int X, Y, intial, fina, count;

    scanf("%d %d", &X, &Y);
    intial = 0;
    fina = 0;
    count = 1;

    while(1){
        if((fina - intial) >= X){
            break;
        }
        count++;
        intial += X;
        fina += Y;
    }

    printf("%d\n", count);

    return 0;
}

URI PROBLEMA 1125 - Fórmula 1 SOLUÇÃO EM C

URI Online Judge | 1125

Fórmula 1

Maratona de Programação da SBC  Brasil
Timelimit: 1
A temporada de Fórmula 1 consiste de uma série de corridas, conhecidas como Grandes Prêmios, organizados pela Federação Internacional de Automobilismo (FIA). Os resultados de cada Grande Prêmio são combinados para determinar o Campeonato Mundial de Pilotos. Mais especificamente, a cada Grande Prêmio são distribuídos pontos para os pilotos, dependendo da classificação na corrida. Ao final da temporada, o piloto que tiver somado o maior número de pontos é declarado Campeão Mundial de Pilotos.

Os organizadores da Fórmula 1 mudam constantemente as regras da competição, com o objetivo de dar mais emoção às disputas. Uma regra modificada para a temporada de 2010 foi justamente a distribuição de pontos em cada Grande Prêmio. Desde 2003 a regra de pontuação premiava os oito primeiros colocados, obedecendo a seguinte tabela:

Ou seja, o piloto vencedor ganhava 10 pontos, o segundo colocado ganhava 8 pontos, e assim por diante.
Na temporada de 2010, os dez primeiros colocados receberão pontos obedecendo a seguinte tabela:


A mudança no sistema de pontuação provocou muita especulação sobre qual teria sido o efeito nos Campeonatos Mundiais passados se a nova pontuação tivesse sido utilizada nas temporadas anteriores. Por exemplo, teria Lewis Hamilton sido campeão em 2008, já que a diferença de sua pontuação total para Felipe Massa foi de apenas um ponto? Para acabar com as especulações, a FIA contratou você para escrever um programa que, dados os resultados de cada corrida de uma temporada determine Campeão Mundial de Pilotos para sistemas de pontuações diferentes.

Entrada

A entrada contém vários casos de teste. A primeira linha de um caso de teste contém dois números inteiros G e P separados por um espaço em branco, indicando respectivamente o número de Grandes Prêmios (1 ≤ G ≤ 100) e o número de pilotos (1 ≤ P ≤ 100). Os pilotos são identificados por inteiros de 1 a P. Cada uma das G linhas seguintes indica o resultado de uma corrida, e contém P inteiros separados por espaços em branco. Em cada linha, o i-ésimo número indica a ordem de chegada do pilodo i na corrida (o primeiro número indica a ordem de chegada do piloto 1 naquela corrida, o segundo número indica a ordem de chegada do piloto 2 na corrida, e assim por diante). A linha seguinte contém um único número inteiro S indicando o número de sistemas de pontuação (1 ≤ S ≤ 10), e após, cada uma das S linhas seguintes contém a descrição de um sistema de pontuação. A descrição de um sistema de pontuação inicia com um inteiro K (1 ≤ K ≤ P), indicando a última ordem de chegada que receberá pontos, seguido de um espaço em branco, seguido de K inteiros k0k1, ... , kn−1(1 ≤ ki ≤ 100) separados por espaços em branco, indicando os pontos a serem atribuídos (o primeiro inteiro indica os pontos do primeiro colocado, o segundo inteiro indica os pontos do segundo colocado, e assim por diante).

O último caso de teste é seguido por uma linha que contém apenas dois números zero separados por um espaço em branco.

Saída

Para cada caso de sistema de pontuação da entrada seu programa deve imprimir uma linha, que deve conter o identificador do Campeão Mundial de Pilotos. Se houver mais de um Campeão Mundial Pilotos (ou seja, se houver empate), a linha deve conter todos os Campeões Mundiais de Pilotos, em ordem crescente de identificador, separados por um espaço em branco.



#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <time.h>

#define TRUE 1
#define FALSE 0


int corrida[101][101], sistema[101], ponto[101];

int main(){
int m,g,p,s,k,i,j;
while(scanf("%i %i", &g, &p) && (g || p)){
for (i = 0; i < g; ++i){
for (j = 0; j < p; ++j){
scanf("%d", &corrida[i][j]);
}
}
scanf("%d", &s);
while(s--){
memset(ponto, 0, sizeof(ponto)); 
memset(sistema, 0, sizeof(sistema));
scanf("%d", &k);
for (i = 0; i < k; ++i)
scanf("%d", &sistema[i]);
for (i = 0; i < g; ++i){
for (j = 0; j < p; ++j){
ponto[j] += sistema[corrida[i][j]-1];
}
}
m = 0;
for (i = 0; i < p; ++i)
if( ponto[i] > m) 
m = ponto[i];
int f = TRUE;
for (i = 0; i < p; ++i){
if(ponto[i] == m){
if(f==TRUE){
printf("%d", i + 1);
f = FALSE;
}else{
printf(" %d", i + 1);
}
}
}
printf("\n");
}
}
return 0;
}

URI PROBLEMA 1133 - Resto da Divisão SOLUÇÃO EM C

URI Online Judge | 1133 Resto da Divisão Adaptado por Neilor Tonin, URI   Brasil Timelimit: 1 Escreva um programa que leia 2 valo...