Submeter | Todas submissőes | Melhores | Voltar |
CARTEI14 - Carteiro |
Um carteiro é o responsável por entregar as encomendas na rua de Joãozinho. Por política da empresa, as encomendas devem ser entregues na mesma ordem que foram enviadas, mesmo que essa não seja a forma mais rápida. Cansado de subir e descer aquela rua tantas vezes, nosso amigo quer mostrar à empresa quanto tempo ele leva para entregar as encomendas, na tentativa de derrubar essa política.
A rua de Joãozinho tem N casas. Naturalmente, as casas são numeradas de forma ordenada (não necessariamente por números consecutivos). Como as casas possuem aproximadamente o mesmo tamanho, você pode assumir que o carteiro leva uma unidade de tempo para caminhar de uma casa até a casa imediatamente vizinha.
Há M encomendas para essa rua, que devem ser entregues na mesma ordem em que chegaram. Cada encomenda contém o número da casa onde deve ser entregue.
Escreva um programa que determine quanto tempo o carteiro levará para entregar todas as enco- mendas, assumindo que quando o tempo começa a contar, ele está na primeira casa (a de menor número), e o tempo termina de contar quando todas as encomendas foram entregues (mesmo que o carteiro não esteja de volta na primeira casa). Você pode desprezar o tempo para colocar a enco- menda na caixa de correio (ou seja, se ele só tiver uma encomenda, para a primeira casa, a resposta para o problema é zero).
Entrada
A primeira linha contém dois inteiros, N e M , respectivamente o número de casas e o número de encomendas. A segunda linha contém N inteiros em ordem estritamente crescente, indicando os números das casas. A terceira linha contém M inteiros indicando os números das casas onde as encomendas devem ser entregues, na ordem dada na entrada.
Saída
Seu programa deve produzir uma única linha, contendo um único inteiro, o tempo que o carteiro levará para entregar todas as encomendas na ordem correta, assumindo que ele começa na casa de menor número.
Restrições
• 1 ≤ N ≤ 45.000 e 1 ≤ M ≤ 45.000
• O número de cada casa é um inteiro entre 1 e 1.000.000.000
Exemplos
Entrada
5 5
1 5 10 20 40
10 20 10 40 1
Saída
10
Entrada
3 4
50 80 100
80 80 100 50
Saída
4
Adicionado por: | Edmundo Rodrigues |
Data: | 2014-05-31 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | ADA95 ASM32 GAWK BASH BF C CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D FORTRAN GO HASK ICON ICK JAVA JS-RHINO LUA NEM NICE NODEJS OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYTHON3 RUBY SCM guile SCM qobi SED ST WHITESPACE |
Origem: | Olimpíada Brasileira de Informática 2014 - Nível Universitário - Fase 1 |
hide comments
2018-08-17 19:24:30
Ou usar dicionario |
|
2017-04-29 16:28:22 Victor Hugo Miranda Pinto
Minha solução passa com 100 pontos no site da OBI e aqui tá dando WA, como assim?? |
|
2015-11-07 13:53:33
Tem q usar busca binaria pra n exceder o tempo limite |