Algorithm
Problem Name: 2 AD-HOC - beecrowd | 2394
Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2394
Corrida 1
Por OBI - Olimpíada Brasileira de Informática 2011 Brazil
Timelimit: 1
A escola de Joãozinho tradicionalmente organiza uma corrida ao redor do prédio. Como todos os alunos são convidados a participar e eles estudam em períodos diferentes, é difícil que todos corram ao mesmo tempo.
Para contornar esse problema, os professores cronometram o tempo que cada aluno demora para dar cada volta ao redor da escola, e depois comparam os tempos para descobrir a classificação final.
Sua tarefa é, sabendo o número de competidores, o número de voltas de que consistiu a corrida e os tempos de cada aluno competidor, descobrir quem foi o aluno vencedor, para que ele possa receber uma medalha comemorativa.
No segundo caso de teste abaixo, existem três competidores numa corrida de três voltas. Os tempos de cada competidor em cada volta foram como na tabela a seguir.
Sendo assim, o vencedor foi o competidor 3 (com um tempo total de 3).
Entrada
A primeira linha da entrada contém dois inteiros N (2 ≤ N ≤ 100) e M (1 ≤ M ≤ 100) representando o número de competidores e o número de voltas da corrida, respectivamente.
Cada uma das N linhas seguintes representa um competidor: a primeira linha representa o primeiro competidor, a segunda linha representa o segundo competidor, e assim por diante. Cada linha contém M inteiros representando os tempos em cada volta da corrida: o primeiro inteiro é o tempo da primeira volta, o segundo inteiro é o tempo da segunda volta, e assim por diante (1 ≤ qualquer número da entrada que represente o tempo de uma volta ≤ 106).
Garante-se que não houve dois competidores que gastaram o mesmo tempo para completar a corrida inteira.
Saída
A saída consiste de um único inteiro, que corresponde ao número do competidor que ganhou a corrida.
Exemplos de Entrada | Exemplos de Saída |
2 1 5 7 |
1 |
Code Examples
#1 Code Example with C++ Programming
Code -
C Programming
#include <stdio.h>
#define true 1
#define false 0
#define MAXSIZE 110
int main (void)
{
unsigned tmp;
unsigned short i;
unsigned short n, m;
long long tempos[MAXSIZE] = { 0 };
scanf("%hu %hu", &n, &m);
for (int i = 1; i < = n; ++i)
for (int j = 0; j < m; ++j)
scanf("%u", &tmp), tempos[i] += tmp;
int pos = 1;
int menor = tempos[1];
for (int i = 2; i < = n; ++i)
if (tempos[i] < menor)
menor = tempos[i], pos = i;
printf("%d\n", pos);
}
Copy The Code &
Try With Live Editor
Input
5
7
Output
#2 Code Example with C++ Programming
Code -
C++ Programming
#include <cstdio>
#include <queue>
#define MP make_pair
using namespace std;
typedef pair < int, int> ii;
int main() {
priority_queue, greater > heap;
int n, m;
scanf("%d %d", &n, &m);
for (int i = 1; i < = n; i++) {
int resposta = 0;
for (int j = 0; j < m; j++) {
int k;
scanf("%d", &k);
resposta += k;
}
heap.push(MP(resposta, i));
}
printf("%d\n", heap.top().second);
return 0;
}
Copy The Code &
Try With Live Editor
Input
5
7
Output