Exercicio em C

1. Exercicio em C

Paulo
paulo_moc

(usa Ubuntu)

Enviado em 03/12/2012 - 01:42h

Olá pessoal, estou tentando resolver um problema em C para o spoj, mas apesar de estar correto aqui(eu acho) la mostra que ta errado, o motivo de eu falar 'eu acho' é que estou começando a cria dúvidas se entendi direito o que o programa deve fazer, já li várias vezes e o que parece ser é:

A descrição acima foi o que eu consegui entender do problema, se alguem quiser ver a o exercicio:
http://br.spoj.pl/problems/MCAIRO/

Criar um programa que determine a rota em que eu posso comprar mais presentes, seguindo algumas regras:
Eu sempre ando em direção ao nordeste(norte e leste), e nunca posso comprar um produto na mao de um comerciante que seja m,ais velho que os anteriores.

eu leio o numero de barracas e a posição x e y de cada uma, sendo que o y aumenta para o norte e o x para o leste, o algoritmo que eu fiz calcula quantos produto posso comprar em cada uma das rotas a partir de cada um das barracas, assim a que tiver o melhor número de presentes é a melhor rota, então está aqui o algoritmo:


#include <stdio.h>

int main()
{
int T, N, xi[1000], yi[1000];
int atx=0, aty=0;
int i, j, k, id;
int np1, np2;

scanf("%d", &T);
int resps[T];

for(i = 0; i < T; i++)
{
scanf("%d", &N);

for(k = 0; k < N; k++)
{
scanf("%d%d", &xi[k], &yi[k]);
}

np2 = 1;
//Calcula em cada uma das rotas, quantos presentes podem ser comprados
//a que tiver o maior numeros de presentes é a melhor
for(j = 0; j < N; j++)
{
id = j;
atx = xi[j];
aty = yi[j];
np1 = 1;

for(k = 0; k < N; k++)
{
if(atx >= xi[k] && aty >= yi[k])
continue;

if(atx <= xi[k] && aty <= yi[k] && id < k)
{
atx = xi[k];
aty = yi[k];
id = k;
np1++;
}
}

if(np1 >= np2)
np2 = np1;
}

resps[i] = np2;

}

for(i = 0; i < T; i++)
printf("%d", resps[i]);

return 0;
}


Já me recomendaram nao criar arrays para a saida, mas é que nesse eu tenho que ler o números de instancias.


  


2. Re: Exercicio em C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/12/2012 - 09:54h

Nem precisei ler o código a fundo para ver que você realmente não entendeu o problema: bastou ver que você não delcarou a matriz bidimensional que seria necessária para representar o mercado e para poder traçar as rotas.

Procure reler o problema para compreendê-lo melhor, e então comece (possivelmente até mesmo do zero) de novo.

E aqui também você não precisa guardar resultados em buffer. Informar de antemão a quantidade de casos de teste é apenas uma outra forma de formatar os dados de entrada.


3. Re: Exercicio em C

Paulo
paulo_moc

(usa Ubuntu)

Enviado em 03/12/2012 - 22:35h

Então, nesse caso eu posso considerar que o usuario entraria pela posição: (ultima_linha, 0)?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts