A FCTE (Federação das Comidas Transportadas com Eficiência) é uma empresa do ramo de delivery em plena expansão. Diante da crescente demanda por novos colaboradores, você foi convidado a fazer parte dessa equipe (e ainda garantir uma graninha extra).
Após receber seu kit completo de trabalho, você está pronto para iniciar sua jornada de entregas. Partindo da sua residência, é preciso planejar uma rota eficiente para coletar e entregar pedidos de diversos restaurantes, sempre retornando ao ponto de partida ao final do trajeto. As ruas possuem um custo fixo de deslocamento, e alguns pontos oferecem postos de combustível. Seu veículo possui um tanque com capacidade limitada, e há também uma quantidade máxima de pedidos que podem ser transportados simultaneamente. Cada pedido, uma vez coletado, deve obrigatoriamente ser entregue.
Seu programa será interativo, se comunicando com um árbitro via entrada e saída padrão. A cada ação, você imprime um comando e imediatamente lê a resposta do árbitro
As ações são realizadas imprimindo uma linha na saída padrão. As opções são:
m X
→ mover-se para o local X
, se for um
vizinho imediato;a
→ abastecer no local atual (caso haja posto de
combustível);p D
→ pegar pedido com destino ao local
D
;e D
→ entregar pedido com destino ao local
D
;x
→ encerrar a entrega (caso o entregador esteja em
casa ou não seja possível continuar).Importante: Após cada ação, seu programa deve obrigatoriamente ler a entrada padrão para receber a resposta do árbitro.
Qualquer ação inválida resultará em WA (Wrong Answer).
m X
— Mover-se para o
local X
X
e combustível suficiente: o
árbitro retorna 1
caso a ação seja possível.WA
;WA
.a
— AbastecerWA
.p D
— Pegar pedido
com destino D
-1
(pedido perdido);e D
— Entregar
pedido com destino D
D
, o pedido é removido e o
árbitro retorna 1
;WA
.x
— Encerrar entregamod = 1.7
, caso contrário mod = 1
.A pontuação por mapa será calculada seguindo a seguinte fórmula:
Legenda:
Símbolo | Significado |
---|---|
(F) | Entregas faltantes |
(SP) | Soma dos pesos de todas as arestas |
(K) | Quilometragem |
(PB) | Pontuação base |
A primeira linha contém sete inteiros:
Onde:
A segunda linha contém (P) inteiros indicando os locais que possuem posto de gasolina:
Em seguida, (M) linhas descrevem as ruas, cada uma contendo três inteiros:
Depois, uma linha com um inteiro (Q) — a quantidade de restaurantes.
Seguem (Q) linhas, cada uma contendo:
6 9 1 10 5 2 1
2
1 3 1
1 5 2
6 1 1
5 2 1
2 6 2
3 4 3
3 5 1
5 6 2
4 6 1
1
6 3 3 4 5
A primeira linha de cada iteração, representa a saída que o seu programa retorna para o juiz. A segunda linha representa a resposta do juiz.
Atenção: toda iteração terá uma resposta, mesmo que não tenha algum significado.
m 5
1
m 2
1
a
10
Perceba que o juiz retornou qual é a capacidade de combustível do posto. Nessa primeira iteração com o posto local, o veículo sempre consegue encher até a capacidade do tanque.
m 6
1
p 3
1
p 4
1
m 1
1
m 3
1
e 3
1
m 4
1
e 4
1
m 6
1
m 1
1
x
1