G.Meneses Posted April 5, 2012 Report Share Posted April 5, 2012 (edited) segue o enunciado:Observadores especializados iam à pista medir o tempo de cada um dos N carros, numerados de 1 a N, em cada uma das M voltas,anotando então os resultados em tabelas para posterior análise por parte das equipes e dos jornalistas. Muitoserros eram introduzidos nesse processo, e a organização decidiu informatizar todo o sistema.A ACM percebeu que o esforço necessário para a construção do sistema seria grande, e optou por contar com aajuda de uma equipe de programadores. Percival foi contratado para escrever a parte do software que determinaquais foram os carros vencedores, mas está com diculdades e pede sua ajuda. A sua tarefa, neste problema,é determinar os três carros melhor colocados, fornecidos os tempos que cada carro levou para completar cadavolta da corrida.exemplo: entrada: 3 1 1 2 3 saida: 123exemplo 2: entrada: 5 23 7 2 5 1 1 15 22 2saida:352Eu consegui executar o 1º exemplo, porém ao entrar 2 ou varios valores de voltas (m) eu não sei como somá-los, segue também o codigo q eu fiz.#include <stdio.h> #include <stdlib.h> int main() { int n,j,i,m,v[11],x; scanf("%d %d", &n, &m); for(i = 0; i < n; i++) { v[i] = (0, i); for (j=0; j < m; j++){ scanf("%d", &x); v[i] =+ x; } } for(i = 0; i < 3; i++) printf("%d\n", v[i]); getch(0); } Edited April 5, 2012 by G.Meneses Quote Link to comment Share on other sites More sharing options...
0 CPP Posted April 5, 2012 Report Share Posted April 5, 2012 Cara, eu nunca vi essa expressão antes: v = (0, i);Você pode me dizer o que ela faz?Grato Quote Link to comment Share on other sites More sharing options...
0 G.Meneses Posted April 5, 2012 Author Report Share Posted April 5, 2012 essa parte do codigo eu peguei do C++, ai transformei pra C só q eu errei e não to sabendo resolver,Isso é um exemplo de Array, usando v = make_pair(0, i+1); e depois usado v.first e v.second.O codigo q peguei em C++ tava assim:#include <cstdio> #include <algorithm> using namespace std; #define MAX 110 pair<int, int> v[MAX]; int main() { int n, m; scanf(" %d %d", &n, &m); for(int i = 0; i < n; i++){ v[i] = make_pair(0, i+1); for(int j = 0; j < m; j++){ int x; scanf(" %d", &x); v[i].first += x; } } sort(v, v+n); for(int i = 0; i < 3; i++) printf("%d\n", v[i].second); return 0; } Quote Link to comment Share on other sites More sharing options...
0 G.Meneses Posted April 5, 2012 Author Report Share Posted April 5, 2012 Fiz uma alteração no codigo, mas na hora de testar ainda continua errado a saida do 2º exemplo produz 7, 5, 1 quando o certo seria 3, 5, 2o 1º exemplo funciona perfeitamente, mas ao passar 2 valores para m não batem os resultados.#include <stdio.h> #include <stdlib.h> int main() { int n,j,i,m,v[11][11],x; scanf("%d %d", &n, &m); for(i = 0; i < n; i++) { v[i][i] = (0, i); for (j=0; j < m; j++){ scanf("%d", &x); v[i][i] =+ x; } } for(i = 0; i < 3; i++) printf("%d\n", v[i][i]); getch(0); } Quote Link to comment Share on other sites More sharing options...
Question
G.Meneses
segue o enunciado:
Observadores especializados iam à pista medir o tempo de cada um dos N carros, numerados de 1 a N, em cada uma das M voltas,
anotando então os resultados em tabelas para posterior análise por parte das equipes e dos jornalistas. Muitos
erros eram introduzidos nesse processo, e a organização decidiu informatizar todo o sistema.
A ACM percebeu que o esforço necessário para a construção do sistema seria grande, e optou por contar com a
ajuda de uma equipe de programadores. Percival foi contratado para escrever a parte do software que determina
quais foram os carros vencedores, mas está com diculdades e pede sua ajuda. A sua tarefa, neste problema,
é determinar os três carros melhor colocados, fornecidos os tempos que cada carro levou para completar cada
volta da corrida.
exemplo: entrada:
3 1
1
2
3
saida:
1
2
3
exemplo 2: entrada:
5 2
3 7
2 5
1 1
15 2
2 2
saida:
3
5
2
Eu consegui executar o 1º exemplo, porém ao entrar 2 ou varios valores de voltas (m) eu não sei como somá-los, segue também o codigo q eu fiz.
Edited by G.MenesesLink to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.