Pular para conteúdo

2300

Faixa de problemas: 2300-2399

Total: 38 problemas

2306 - Escada Perfeita

Descrição do Problema: 2306 - Escada Perfeita

2306 - Escada Perfeita
n = leia_inteiro
cubos = leia_inteiros(" ")

soma = cubos.injete(0)(_ + _)
num = 2 * soma + n - n * n
den = 2 * n
a1 = num div den
resto = num mod den

resposta = se resto == 0 e a1 > 0 então
             an = a1 + n - 1
             indice = para i de a1 até an gere i fim
             cubos.zip(indice)
               .mapeie(a => (a.primeiro - a.segundo).abs)
               .injete(0)(_ + _) div 2
            senão
              -1
            fim
escreva resposta

2310 - Voleibol

Descrição do Problema: 2310 - Voleibol

2310 - Voleibol
n = leia_inteiro
var tentativas, sucesso := [0, 0, 0]
para i de 1 ate n faca
  nome = leia_texto
  a, b = leia_inteiros(" ")
  para j de 1 ate 3 faca
    tentativas[j] := tentativas[j] + a[j]
    sucesso[j] := sucesso[j] + b[j]
  fim
fim

fundamentos = ["Saque", "Bloqueio", "Ataque"]
para j de 1 ate 3 faca
  pontos = sucesso[j] * 100 / tentativas[j]
  escreva "Pontos de {fundamentos[j]}: {pontos formato "%.2f"} %."
fim

2311 - Saltos Ornamentais

Descrição do Problema: 2311 - Saltos Ornamentais

2311 - Saltos Ornamentais
n = leia_inteiro
para i de 1 até n faça
  nome = leia_texto
  gd = leia_real
  notas = leia_reais(" ")
            .ordene
            .descarte(1)
            .pegue(5)
  soma = notas.injete(0.0)(_ + _)
  escreva "{nome} {soma * gd formato "%.2f"}"
fim

2312 - Quadro De Medalhas

Descrição do Problema: 2312 - Quadro De Medalhas

2312 - Quadro De Medalhas
tipo Pais = (Texto, Inteiro, Inteiro, Inteiro)
comparar = (a, b: Pais) =>
  se a.segundo <> b.segundo entao
    a.segundo > b.segundo
  senaose a.terceiro <> b.terceiro entao
    a.terceiro > b.terceiro
  senaose a.quarto <> b.quarto entao
    a.quarto > b.quarto
  senao
    a.primeiro < b.primeiro
  fim

n = leia_inteiro
paises = Lista(n, leia_textos(" "))
   .mapeie(a => (a[1], a[2].inteiro, a[3].inteiro, a[4].inteiro))
ordem = paises.ordene(comparar)
escreva ordem.mapeie(a => "{a.primeiro} {a.segundo} {a.terceiro} {a.quarto}").junte("\n")

2313 - Qual Triângulo

Descrição do Problema: 2313 - Qual Triângulo

2313 - Qual Triângulo
lados = leia_inteiros(" ").ordene
a, b, c = lados[1], lados[2], lados[3]
se a + b > c entao
  imprima "Valido-"
  escreva se a == c entao
    "Equilatero"
  senaose a == b ou b == c entao
    "Isoceles"
  senao
    "Escaleno"
  fim
  escreva "Retangulo: {se a * a + b * b == c * c entao "S" senao "N" fim}"
senao
  escreva "Invalido"
fim

2322 - Peça Perdida

Descrição do Problema: 2322 - Peça Perdida

2322 - Peça Perdida
1
2
3
n = leia_inteiro
nums = (0 :: (n + 1) :: leia_inteiros(" ")).ordene
escreva nums.divida_quando((a, b) => b - a > 1)[2].cabeça - 1

2327 - Quadrados

Descrição do Problema: 2327 - Quadrados

2327 - Quadrados
somar_linha(a: Lista[Lista[Inteiro]], n: Inteiro) =
  (f: Inteiro => (Inteiro, Inteiro)) =>
    para i de 1 até n gere
      a[f(i).primeiro][f(i).segundo]
    fim.injete(0)(_ + _)

n = leia_inteiro
a = para i de 1 até n gere leia_inteiros(" ") fim

s = somar_linha(a, n)
soma = ( s(i => (i, i)) ::              # diagonal principal
         s(i => (i, n - i + 1)) ::      # diagonal secundária
         para j de 1 ate n gere s(i => (j, i)) fim +
         para j de 1 ate n gere s(i => (i, j)) fim ).ordene

escreva se soma[1] == soma[-1] então soma[1] senão -1 fim

2328 - Chocolate

Descrição do Problema: 2328 - Chocolate

2328 - Chocolate
1
2
3
4
n = leia_inteiro
a = leia_inteiros(" ")
s = a.injete(0)(_ + _) - n
escreva s

2334 - Patinhos

Descrição do Problema: 2334 - Patinhos

2334 - Patinhos
1
2
3
4
5
6
7
8
9
var entrada := leia_texto
enquanto entrada <> "-1" faca
  se entrada == "0" entao
    escreva 0
  senao
    escreva BigInt(entrada) - 1
  fim
  entrada := leia_texto
fim

2336 - ABC

Descrição do Problema: 2336 - ABC

2336 - ABC
1
2
3
4
5
6
7
var s := leia_texto
enquanto nao eof faça
  abc = s.lista.mapeie(_ - 'A')
  decimal = abc.injete(BigInt(0))((a,b) => (a * 26 + b) mod 1000000007)
  escreva decimal
  s := leia_texto
fim

2338 - Morse

Descrição do Problema: 2338 - Morse

2338 - Morse
letras = ["=.===", "===.=.=.=", "===.=.===.=", "===.=.=", "=", "=.=.===.=",
 "===.===.=", "=.=.=.=","=.=", "=.===.===.===", "===.=.===", "=.===.=.=",
 "===.===", "===.=", "===.===.===", "=.===.===.=", "===.===.=.===",
 "=.===.=", "=.=.=", "===", "=.=.===", "=.=.=.===", "=.===.===",
 "===.=.=.===", "===.=.===.===", "===.===.=.="]
ponto = "\\."

converta_letra(letra: Texto) = (letras.posição(letra) + 96).caractere
converta_palavra(palavra: Texto) = palavra.divida(ponto * 3).mapeie(converta_letra).junte("")

t = leia_inteiro
para i de 1 até t faça
  s = leia_texto
  palavras = s.divida(ponto * 7).mapeie(converta_palavra).junte(" ")
  escreva palavras
fim

2339 - Aviões de Papel

Descrição do Problema: 2339 - Aviões de Papel

2339 - Aviões de Papel
1
2
3
4
5
6
7
a = leia_inteiros(" ")
c, p, f = a[1], a[2], a[3]
se c * f <= p entao
  escreva "S"
senão
  escreva "N"
fim

2341 - Número de Envelopes

Descrição do Problema: 2341 - Número de Envelopes

2341 - Número de Envelopes
entrada = leia_inteiros(" ")
n, k = entrada[1], entrada[2]
xs = leia_inteiros(" ")

var envelopes = Lista.mutável(k, 0)
para x em xs faca
  envelopes[x] := envelopes[x] + 1
fim

rotulos = envelopes.ordene[1]
escreva rotulos

2342 - Overflow

Descrição do Problema: 2342 - Overflow

2342 - Overflow
n = leia_inteiro
exp = leia_textos(" ")
p, c, q = exp[1].inteiro, exp[2], exp[3].inteiro
valor = escolha c
  caso "*" => p.inteiro * q.inteiro
  caso _   => p.inteiro + q.inteiro
fim

se valor > n entao
  escreva "OVERFLOW"
senao
  escreva "OK"
fim

2344 - Notas da Prova

Descrição do Problema: 2344 - Notas da Prova

2344 - Notas da Prova
1
2
3
4
5
6
7
8
n = leia_inteiro
escolha n
  caso 0            => escreva "E"
  caso x se x <= 35 => escreva "D"
  caso x se x <= 60 => escreva "C"
  caso x se x <= 85 => escreva "B"
  caso _            => escreva "A"
fim

2345 - Assigning Teams

Descrição do Problema: 2345 - Assigning Teams

2345 - Assigning Teams
1
2
3
x = leia_inteiros(" ")
dif = abs((x[1] + x[4]) - (x[2] + x[3]))
escreva dif

2349 - Farm Robot

Descrição do Problema: 2349 - Farm Robot

2349 - Farm Robot
n = leia_inteiros(3)
var pos := 1
var cont := se n[3] == 1 então 1 senão 0 fim
para comando em leia_inteiros(n[2]) faça
    pos := pos + comando
    se pos > n[1] então 
        pos := 1
    senãose pos < 1 então 
        pos := n[1]
    fim
    se pos == n[3] então
        cont := cont + 1
    fim
fim
escreva cont

2355 - Brasil e Alemanha

Descrição do Problema: 2355 - Brasil e Alemanha

2355 - Brasil e Alemanha
1
2
3
4
5
6
7
var n := leia_inteiro
enquanto n > 0 faça
  brasil = (n / 90).piso.inteiro
  alemanha = (n / 90 * 7).teto.inteiro
  escreva "Brasil {brasil} x Alemanha {alemanha}"
  n := leia_inteiro
fim

2356 - Bactéria I

Descrição do Problema: 2356 - Bactéria I

2356 - Bactéria I
var d := leia_texto
enquanto nao eof faca
  s = leia_texto
  var i := 0
  enquanto i < d.tamanho - s.tamanho + 1 faca
    se d.descarte(i).pegue(s.tamanho) == s entao
      escreva "Resistente"
      i := d.tamanho
    senao
      i := i + 1
    fim
  fim
  se i < d.tamanho entao
    escreva "Nao resistente"
  fim
  d := leia_texto
fim

2369 - Conta de Água

Descrição do Problema: 2369 - Conta de Água

2369 - Conta de Água
n = leia_inteiro
var conta := 7
se n > 10 então
  conta := conta + (n - 10)
fim
se n > 30 então
  conta := conta + (n - 30)
fim
se n > 100 então
  conta := conta + (n - 100) * 3
fim
escreva conta

2373 - Garçom

Descrição do Problema: 2373 - Garçom

2373 - Garçom
1
2
3
4
5
6
7
8
n = leia_inteiro
var total := 0
para i de 1 ate n faca
  a = leia_inteiros(" ")
  l, c = a[1], a[2]
  se l > c entao total := total + c fim
fim
escreva total

2374 - Pneu

Descrição do Problema: 2374 - Pneu

2374 - Pneu
n, m = leia_inteiro
escreva n - m

2375 - Sedex

Descrição do Problema: 2375 - Sedex

2375 - Sedex
n = leia_inteiro
entrada = leia_inteiros(" ")

a = entrada[1]
b = entrada[2]
c = entrada[3]

se n <= a e n <= b e n <= c então
  escreva "S"
senão
  escreva "N"
fim

2376 - Copa do Mundo

Descrição do Problema: 2376 - Copa do Mundo

2376 - Copa do Mundo
jogos = para i de 1 ate 15 gere
  a = leia_inteiros(" ")
  a[1] > a[2]
fim

jogo1 =
  se jogos[15] entao
    se jogos[13] entao
      se jogos[9] entao 1 senao 2 fim
    senao
      se jogos[10] entao 3 senao 4 fim
    fim
  senao
    se jogos[14] entao
      se jogos[11] entao 5 senao 6 fim
    senao
      se jogos[12] entao 7 senao 8 fim
    fim
  fim

campeao = se jogos[jogo1] entao jogo1 * 2 - 1 senao jogo1 * 2 fim
escreva "ABCDEFGHIJKLMNOP"[campeao]

2377 - Pedágio

Descrição do Problema: 2377 - Pedágio

2377 - Pedágio
1
2
3
4
5
6
7
8
9
linha1, linha2 = leia_inteiros(" ")
l = linha1[1]
d = linha1[2]
k = linha2[1]
p = linha2[2]

pedagios = l div d
custo = l * k + pedagios * p
escreva custo

2378 - Elevador

Descrição do Problema: 2378 - Elevador

2378 - Elevador
a = leia_inteiros(" ")
n, c = a[1], a[2]
var excedida := "N"
var pessoas := 0
var i := 0
enquanto i < n faca
  b = leia_inteiros(" ")
  pessoas := pessoas + b[2] - b[1]
  se pessoas > c entao
    excedida := "S"
    i := n
  fim
  i := i + 1
fim
escreva excedida

2381 - Lista de Chamada

Descrição do Problema: 2381 - Lista de Chamada

2381 - Lista de Chamada
1
2
3
4
a = leia_inteiros(" ")
n, k = a[1], a[2]
nomes = leia_textos(n)
escreva nomes.ordene[k]

2382 - Sedex Marciano

Descrição do Problema: 2382 - Sedex Marciano

2382 - Sedex Marciano
1
2
3
4
5
6
7
8
9
d = leia_inteiros(4)
lados = d.pegue(3).ordene(_ > _)
l1, l2 = lados[1], lados[2]
r = d[4]
se l1 * l1 + l2 * l2 <= 4 * r * r entao
  escreva "S"
senao
  escreva "N"
fim

2386 - Telescópio

Descrição do Problema: 2386 - Telescópio

2386 - Telescópio
a, n = leia_inteiro
z = 40000000 / a
var soma := 0
para i de 1 ate n faca
  f = leia_inteiro
  se f >= z entao
    soma := soma + 1
  fim
fim
escreva soma

2388 - Tacógrafo

Descrição do Problema: 2388 - Tacógrafo

2388 - Tacógrafo
1
2
3
4
5
6
7
8
n = leia_inteiro
var soma := 0
para i de 1 ate n faca
  linha = leia_inteiros(" ")
  t, v = linha[1], linha[2]
  soma := soma + t * v
fim
escreva soma

2389 - Floresta

Descrição do Problema: 2389 - Floresta

2389 - Floresta
x = leia_inteiro
limite = raiz(x / 2).inteiro

var combinações := 0
para n de 1 até limite faça
  se (n + x) mod (2 * n + 1) == 0 então
    combinações := combinações + 1
  fim
fim
escreva combinações

# combinações = para n de 1 ate limite se (n + x) mod (2 * n + 1) == 0 gere 1 fim.tamanho

2390 - Escada Rolante

Descrição do Problema: 2390 - Escada Rolante

2390 - Escada Rolante
n = leia_inteiro
var tempo, anterior := 0, -1
para i de 1 até n faça
    atual = leia_inteiro
    dif = atual - anterior
    se anterior <> -1 e dif < 10 então
        tempo := tempo - (10 - dif)
    fim
    anterior := atual
    tempo := tempo + 10
fim
escreva tempo

2391 - Progressões Aritméticas

Descrição do Problema: 2391 - Progressões Aritméticas

2391 - Progressões Aritméticas
pas(nums: Lista[Inteiro], tamanho, total: Inteiro): Inteiro =
  se tamanho < 3                           então total
  senãose nums[1] + nums[3] == 2 * nums[2] então pas(nums.cauda, tamanho - 1, total)
                                           senão pas(nums.descarte(2), tamanho - 2, total + 1)
  fim

n = leia_inteiro
a = leia_inteiros(" ")
escreva pas(a, n, 1)

# # Imperativo
# var n := leia_inteiro
# var a := leia_inteiros(" ")
# var total := 1
# enquanto n > 2 faça
#   se a[1] + a[3] == 2 * a[2] então
#     a := a.descarte(1)
#     n := n - 1
#   senão
#     a := a.descarte(2)
#     n := n - 2
#     total := total + 1
#   fim
# fim
# escreva total

2394 - Corrida 1

Descrição do Problema: 2394 - Corrida 1

2394 - Corrida 1
1
2
3
4
5
n  = leia_inteiro
tempos = para i de 1 ate n gere leia_inteiros(" ").injete(0)(_ + _) fim
menor = tempos.ordene.cabeca
ganhador = tempos.posicao(menor)
escreva ganhador

2395 - Transporte de Contêineres

Descrição do Problema: 2395 - Transporte de Contêineres

2395 - Transporte de Contêineres
1
2
3
c = leia_inteiros(" ")
n = leia_inteiros(" ")
escreva (n[1] div c[1]) * (n[2] div c[2]) * (n[3] div c[3])

2396 - Corrida

Descrição do Problema: 2396 - Corrida

2396 - Corrida
1
2
3
4
5
6
n  = leia_inteiro
tempos = para i de 1 ate n gere leia_inteiros(" ").injete(0)(_ + _) fim
primeiros = tempos.ordene
escreva tempos.posicao(primeiros[1])
escreva tempos.posicao(primeiros[2])
escreva tempos.posicao(primeiros[3])

2397 - Triângulos

Descrição do Problema: 2397 - Triângulos

2397 - Triângulos
lados = leia_inteiros(" ").ordene
a, b, c = lados[1], lados[2], lados[3]

d = c * c - (a * a + b * b)
escolha d
  caso d se d >= 2 * a * b => escreva "n"
  caso d se d > 0          => escreva "o"
  caso d se d < 0          => escreva "a"
  caso _                   => escreva "r"
fim

2399 - Campo Minado

Descrição do Problema: 2399 - Campo Minado

2399 - Campo Minado
1
2
3
4
5
6
n = leia_inteiro
a = 0::leia_inteiros(n) + [0]
para i de 2 até a.tamanho - 1 faça
  soma = a[i-1] + a[i] + a[i+1]
  escreva soma
fim