Pular para conteúdo

2400

Faixa de problemas: 2400-2499

Total: 46 problemas

2402 - Selos

Descrição do Problema: 2402 - Selos

2402 - Selos
1
2
3
4
5
6
n = BigInt(leia_texto)
fatoravel(a: BigInt, i: Inteiro): Logico = a > i e i < 100000 e (
  a mod i == 0 ou fatoravel(a, i + 2)
)
resposta = se (n > 3 e n mod 2 == 0) ou fatoravel(n, 3) entao "S" senao "N" fim
escreva resposta

2408 - Vice-Campeão

Descrição do Problema: 2408 - Vice-Campeão

2408 - Vice-Campeão
abc = leia_inteiros(" ").ordene
escreva abc[2]

2409 - Colchão

Descrição do Problema: 2409 - Colchão

2409 - Colchão
entrada1, entrada2 = leia_inteiros(" ").ordene
a = entrada1[1]
b = entrada1[2]
c = entrada1[3]
h = entrada2[1]
l = entrada2[2]
se l > b e h > a então
  escreva "S"
senão
  escreva "N"
fim

2410 - Frequencia na Aula

Descrição do Problema: 2410 - Frequencia na Aula

2410 - Frequencia na Aula
1
2
3
n = leia_inteiro
presencas = leia_textos(n).ordene.divida_quando(_ <> _).tamanho
escreva presencas

2413 - Busca na Internet

Descrição do Problema: 2413 - Busca na Internet

2413 - Busca na Internet
escreva leia_inteiro * 4

2414 - Desafio do Maior Número

Descrição do Problema: 2414 - Desafio do Maior Número

2414 - Desafio do Maior Número
1
2
3
a = leia_inteiros(" ")
x = a.injete(0)((i,j) => se i > j entao i senao j fim)
escreva x

2416 - Corrida

Descrição do Problema: 2416 - Corrida

2416 - Corrida
1
2
3
4
entrada = leia_inteiros(" ")
c = entrada[1]
n = entrada[2]
escreva c mod n

2417 - Campeonato

Descrição do Problema: 2417 - Campeonato

2417 - Campeonato
a = leia_inteiros(" ")
cv, ce, cs, fv, fe, fs = a[1], a[2], a[3], a[4], a[5], a[6]
c = cv * 3000 + ce * 1000 + cs
f = fv * 3000 + fe * 1000 + fs
se c > f entao
  escreva "C"
senãose c < f então
  escreva "F"
senao
  escreva "="
fim

2418 - Carnaval

Descrição do Problema: 2418 - Carnaval

2418 - Carnaval
n = leia_reais(" ")
# soma = n.descarte(1).pegue(3).injete(0)(_ + _)

menor =
  se n[1] <= n[2] e n[1] <= n[3] e n[1] <= n[4] e n[1] <= n[5] entao n[1]
  senãose           n[2] <= n[3] e n[2] <= n[4] e n[2] <= n[5] entao n[2]
  senãose                          n[3] <= n[4] e n[3] <= n[5] entao n[3]
  senãose                                         n[4] <= n[5] entao n[4]
  senão                                                              n[5]
  fim

maior =
  se n[1] >= n[2] e n[1] >= n[3] e n[1] >= n[4] e n[1] >= n[5] entao n[1]
  senãose           n[2] >= n[3] e n[2] >= n[4] e n[2] >= n[5] entao n[2]
  senãose                          n[3] >= n[4] e n[3] >= n[5] entao n[3]
  senãose                                         n[4] >= n[5] entao n[4]
  senão                                                              n[5]
  fim

soma = n[1] + n[2] + n[3] + n[4] + n[5] - menor - maior
escreva soma formato "%.1f"

2420 - Guerra por Território

Descrição do Problema: 2420 - Guerra por Território

2420 - Guerra por Território
1
2
3
4
5
6
7
8
9
n = leia_inteiro
var a := leia_inteiros(" ")
total = a.injete(0)(_ + _)
var metade := 0
enquanto metade < total div 2 faça
  metade := metade + a.cabeça
  a := a.cauda
fim
escreva n - a.tamanho

2421 - Álbum de Fotos

Descrição do Problema: 2421 - Álbum de Fotos

2421 - Álbum de Fotos
maior(x, y: Inteiro) = se x > y entao x senao y fim

a, b, c = leia_inteiros(" ").ordene
se b[2]+c[2] <= a[2] e maior(b[1], c[1]) <= a[1] ou
   b[1]+c[2] <= a[2] e maior(b[2], c[1]) <= a[1] ou
   b[2]+c[1] <= a[2] e maior(b[1], c[2]) <= a[1] ou
   b[1]+c[1] <= a[2] e maior(b[2], c[2]) <= a[1] ou
   b[1]+c[1] <= a[1] e maior(b[2], c[2]) <= a[2] entao
  escreva "S"
senao
  escreva "N"
fim

2422 - Soma das Casas

Descrição do Problema: 2422 - Soma das Casas

2422 - Soma das Casas
n = leia_inteiro
c = Lista.mutável(n, 0)
para i de 1 até n faça c[i] := leia_inteiro fim

k = leia_inteiro

var min, max := 1, n
enquanto min < max faça
  soma = c[min] + c[max]
  se soma > k então
    max := max - 1
  senãose soma < k então
    min := min + 1
  senão
    escreva "{c[min]} {c[max]}"
    min := max # terminar
  fim
fim

2423 - Receita de Bolo

Descrição do Problema: 2423 - Receita de Bolo

2423 - Receita de Bolo
1
2
3
4
5
6
7
8
9
s = leia_inteiros(" ")
farinha, ovos, leite = s[1] div 2, s[2] div 3, s[3] div 5
se farinha <= ovos e farinha <= leite entao
  escreva farinha
senaose ovos <= leite entao
  escreva ovos
senao
  escreva leite
fim

2424 - Tira-teima

Descrição do Problema: 2424 - Tira-teima

2424 - Tira-teima
1
2
3
4
5
6
7
a = leia_inteiros(" ")
x, y = a[1], a[2]
se x >= 0 e x <= 432 e y >= 0 e y <= 468 entao
  escreva "dentro"
senão
  escreva "fora"
fim

2427 - Chocolate

Descrição do Problema: 2427 - Chocolate

2427 - Chocolate
1
2
3
4
5
6
7
8
9
pedacos(lado: Inteiro): Inteiro =
  se lado < 2 entao 1
  senao
    a = lado div 2
    4 * pedacos(a)
  fim

l = leia_inteiro
escreva pedacos(l)

2428 - Capital

Descrição do Problema: 2428 - Capital

2428 - Capital
1
2
3
4
5
6
x = leia_inteiros(" ").ordene
se x[1] * x[4] == x[2] * x[3] então
  escreva "S"
senão
  escreva "N"
fim

2434 - Saldo do Vovô

Descrição do Problema: 2434 - Saldo do Vovô

2434 - Saldo do Vovô
x = leia_inteiros(" ")
n = x[1]
var saldo := x[2]
mov = leia_inteiros(n)
var menor := saldo
para i em mov faça
  saldo := saldo + i
  se saldo < menor então
    menor := saldo
  fim
fim
escreva menor

2435 - Corrida

Descrição do Problema: 2435 - Corrida

2435 - Corrida
1
2
3
4
5
6
a, b = leia_inteiros(" ")
se a[2] / a[3] < b[2] / b[3] entao
  escreva a[1]
senao
  escreva b[1]
fim

2437 - Distância de Manhattan

Descrição do Problema: 2437 - Distância de Manhattan

2437 - Distância de Manhattan
1
2
3
4
5
6
7
entrada = leia_inteiros(" ")
xm = entrada[1]
ym = entrada[2]
xr = entrada[3]
yr = entrada[4]
a = abs(xm - xr) + abs(ym - yr)
escreva a

2441 - Janela

Descrição do Problema: 2441 - Janela

2441 - Janela
1
2
3
4
5
min(x, y: Inteiro) = se x < y então x senão y fim

a = leia_inteiros(" ").ordene
r = 400 - min(200, a[2]-a[1]) - min(200, a[3]-a[2])
escreva r*100

2443 - Soma de Frações

Descrição do Problema: 2443 - Soma de Frações

2443 - Soma de Frações
mdc(i, j: Inteiro): Inteiro =
  se i == 0 entao j
  senaose i > j entao mdc(i mod j , j)
  senao mdc(j, i) fim

x = leia_inteiros(" ")
a, b, c, d = x[1], x[2], x[3], x[4]
num = a * d + c * b
den = b * d

m = mdc(num, den)
escreva "{num div m} {den div m}"

2444 - Volume da TV

Descrição do Problema: 2444 - Volume da TV

2444 - Volume da TV
1
2
3
4
5
6
min(x, y: Inteiro) = se x < y então x senão y fim
max(x, y: Inteiro) = se x > y então x senão y fim

v = leia_inteiros(" ")[1]
var a := leia_inteiros(" ")
escreva a.injete(v)((x, y) => max(min(x + y, 100), 0))

2449 - Fechadura

Descrição do Problema: 2449 - Fechadura

2449 - Fechadura
n = leia_inteiros(2)
var res, i := 0, 1
var fechaduras := leia_inteiros(n[1])
enquanto i < n[1] faça
    res := res + abs(n[2] - fechaduras[i])
    se fechaduras[i] == fechaduras[i+1] então
        i := i + 1
    senão
        fechaduras[i+1] := fechaduras[i+1] + (n[2] - fechaduras[i])
    fim
    i := i + 1
fim
escreva res

2450 - Matriz Escada

Descrição do Problema: 2450 - Matriz Escada

2450 - Matriz Escada
a = leia_inteiros(" ")
n, m = a[1], a[2]
var coluna := -1
var resposta := "S"
para i de 1 até n se resposta == "S" faça
  zeros = leia_inteiros(" ").pegue_enquanto(_ == 0).tamanho
  se zeros > coluna ou zeros == m então
    coluna := zeros
  senão
    resposta := "N"
  fim
fim
escreva resposta

2451 - PacMan

Descrição do Problema: 2451 - PacMan

2451 - PacMan
1
2
3
4
5
6
7
8
n = leia_inteiro
linhas =
  para i de 1 ate n gere
    a = leia_texto.selecione(_ <> '.')
    se i mod 2 == 1 entao a senão a.inverta fim
  fim
comidas = linhas.junte("").divida("A").ordene(_.tamanho).inverta
escreva comidas[1].tamanho

2453 - Língua do P

Descrição do Problema: 2453 - Língua do P

2453 - Língua do P
1
2
3
4
5
6
decifrar(p: Texto) =
  para i de 2 ate p.tamanho passo 2 gere p[i] fim.junte("")

palavras = leia_textos(" ")
mensagem = palavras.mapeie(decifrar).junte(" ")
escreva mensagem

2454 - Flíper

Descrição do Problema: 2454 - Flíper

2454 - Flíper
entrada = leia_inteiros(" ")
p = entrada[1]
r = entrada[2]

se p == 0 então
  escreva "C"
senãose r == 0 então
  escreva "B"
senão
  escreva "A"
fim

2455 - Gangorra

Descrição do Problema: 2455 - Gangorra

2455 - Gangorra
entrada = leia_inteiros(" ")
p1 = entrada[1]
c1 = entrada[2]
p2 = entrada[3]
c2 = entrada[4]

lado1 = p1 * c1
lado2 = p2 * c2

se lado1 == lado2 então
  escreva 0
senãose lado2 > lado1 então
  escreva 1
senão
  escreva -1
fim

2456 - Cartas

Descrição do Problema: 2456 - Cartas

2456 - Cartas
a = leia_inteiros(" ")
b = a.ordene
c = b.inverta
se a == b entao
  escreva "C"
senaose a == c entao
  escreva "D"
senao
  escreva "N"
fim

2457 - Letras

Descrição do Problema: 2457 - Letras

2457 - Letras
1
2
3
4
c = leia_texto[1]
texto = leia_textos(" ")
palavras = texto.selecione(_.contem(c))
escreva (palavras.tamanho * 100 / texto.tamanho) formato "%.1f"

2460 - Fila

Descrição do Problema: 2460 - Fila

2460 - Fila
#n = leia_texto
#a = leia_textos(" ")
#m = leia_texto
#b = leia_textos(" ")
#escreva (a - b).junte(" ")

remover(fila, resultado: Lista[(Inteiro, Inteiro)], saida: Lista[Inteiro]): Lista[Inteiro] =
  se [] == saida entao
    (fila + resultado).ordene(_.segundo).mapeie(_.primeiro)
  senaose fila[1].primeiro < saida[1] entao
    remover(fila.cauda, fila[1]::resultado, saida)
  senao
    remover(fila.cauda, resultado, saida.cauda)

n = leia_inteiro
entrada = leia_inteiros(" ")
var m := leia_inteiro
var saida := leia_inteiros(" ").ordene

indice = para i de 1 até n gere i fim

var fila = entrada.zip(indice).ordene(_.primeiro)

var resultado := [(0, 0)].cauda
enquanto saida <> [] faça
  enquanto fila[1].primeiro < saida[1] faca
    resultado := fila[1] :: resultado
    fila := fila.cauda
  fim
  saida := saida.cauda
  fila := fila.cauda
fim
resultado := fila + resultado

final = resultado.ordene(_.segundo).mapeie(_.primeiro).junte(" ")
escreva final

2462 - Voo

Descrição do Problema: 2462 - Voo

2462 - Voo
entrada = leia_texto.divida(" ").mapeie(_.divida(":").mapeie(_.inteiro))
h1, m1 = entrada[1][1], entrada[1][2]
h2, m2 = entrada[2][1], entrada[2][2]
h3, m3 = entrada[3][1], entrada[3][2]
h4, m4 = entrada[4][1], entrada[4][2]
t1, t2, t3, t4 = (h1 * 60) + m1, (h2 * 60) + m2, (h3 * 60) + m3, (h4 * 60) + m4

d1 = se t1 > t2 então 1440 - t1 + t2 senão t2 - t1 fim
d2 = se t3 > t4 então 1440 - t3 + t4 senão t4 - t3 fim

voo_hr = (d1 + d2) div 2 - (se d1 + d2 > 1440 então 720 senão 0 fim)
fus_diferent = d1 - voo_hr - (se d1 - voo_hr > 720 então 1440 senão 0 fim)

escreva "{voo_hr} {fus_diferent div 60}"

2463 - Corredor

Descrição do Problema: 2463 - Corredor

2463 - Corredor
leia_texto
var a := leia_inteiros(" ")
var soma, aux := 0
var tam := a.tamanho
enquanto tam > 0 faca
  soma := soma + a[1]
  se soma > aux entao aux := soma fim
  se soma < 0 entao
    soma := 0
  fim
  a := a.cauda
  tam := tam - 1
fim
escreva aux

2464 - Decifra

Descrição do Problema: 2464 - Decifra

2464 - Decifra
1
2
3
4
5
6
7
8
alfa = leia_texto.minusculo
senha = leia_texto.minusculo
inicio = 'a' - 1
original = senha.lista
            .mapeie(_.inteiro - inicio)
            .mapeie(alfa[_])
            .junte("")
escreva original

2465 - Passa Bolinha

Descrição do Problema: 2465 - Passa Bolinha

2465 - Passa Bolinha
n = leia_inteiro
a = leia_inteiros(" ")
matriz = Lista(n, leia_inteiros(" "))
var marcado = Lista(n, Lista(n, falso))
var bandeiras := 0

marcar(x, y: Inteiro): Nada
  marcado[x][y] := verdadeiro
  bandeiras := bandeiras + 1
  vizinhos = [(x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)]
  para a em vizinhos faça
    i, j = a.primeiro, a.segundo
    se i > 0 e i <= n e j > 0 e j <= n e matriz[x][y] <= matriz[i][j] e não marcado[i][j] então
      marcar(i, j)
    fim
  fim
fim

marcar(a[1], a[2])
escreva bandeiras

2466 - Sinuca

Descrição do Problema: 2466 - Sinuca

2466 - Sinuca
leia_inteiro
var linha := leia_inteiros(" ")

enquanto linha.tamanho > 1 faça
  linha := para i de 2 até linha.tamanho gere
    linha[i - 1] * linha[i]
  fim
fim

escolha linha[1]
  caso -1 => escreva "branca"
  caso  1 => escreva "preta"
fim

2469 - Notas

Descrição do Problema: 2469 - Notas

2469 - Notas
qnt_alunos = leia_inteiro
notas = leia_inteiros(" ")

notas_ord = notas.ordene
var i = 1
var maior_repetidos = 1
var maior_nota = 0 
enquanto i <= qnt_alunos faça
    repetidos = notas_ord.selecione(n => n == notas_ord[i]) 
    i := i + repetidos.tamanho - 1
    se repetidos.tamanho >= maior_repetidos então 
        maior_repetidos := repetidos.tamanho
        maior_nota := notas_ord[i]
    fim
    i := i + 1
fim

escreva maior_nota


# Solução mais simplificada 
# qnt_alunos = leia_inteiro
# notas = leia_inteiros(" ")
# escreva notas.ordene(- _).divida_quando((a, b) => a <> b).ordene(- _.tamanho)[1][1]

2472 - Tapetes

Descrição do Problema: 2472 - Tapetes

2472 - Tapetes
1
2
3
4
5
6
a = leia_inteiros(" ")
l, n = BigInt(a[1]), BigInt(a[2])

saida = (l - n + 1) * (l - n + 1) + n - 1

escreva saida

2473 - Loteria

Descrição do Problema: 2473 - Loteria

2473 - Loteria
1
2
3
4
5
aposta, sorteio = leia_inteiros(" ")
acertos = para i em aposta,
               j em sorteio se i == j gere i fim
resposta = ["azar", "azar", "azar", "terno", "quadra", "quina", "sena"]
escreva resposta[acertos.tamanho + 1]

2479 - Ordenando a Lista de Crianças do Papai Noel

Descrição do Problema: 2479 - Ordenando a Lista de Crianças do Papai Noel

2479 - Ordenando a Lista de Crianças do Papai Noel
1
2
3
4
5
6
n = leia_inteiro
lista = leia_textos(n).mapeie(a => a.divida(" "))
nomes = lista.mapeie(a => a[2]).ordene
comportados = lista.selecione(a => a[1] == "+").tamanho
escreva nomes.junte("\n")
escreva "Se comportaram: {comportados} | Nao se comportaram: {n - comportados}"

2483 - Feliz Nataaal!

Descrição do Problema: 2483 - Feliz Nataaal!

2483 - Feliz Nataaal!
i = leia_inteiro
escreva "Feliz nat{"a"*i}l!"

2484 - Abracadabra

Descrição do Problema: 2484 - Abracadabra

2484 - Abracadabra
1
2
3
4
5
6
7
8
9
var s := leia_texto
enquanto nao eof faca
  t = s.tamanho
  para i de 0 ate t - 1 faca
    escreva " " * i + s.pegue(t - i).junte(" ")
  fim
  escreva ""
  s := leia_texto
fim

2486 - C Mais ou Menos?

Descrição do Problema: 2486 - C Mais ou Menos?

2486 - C Mais ou Menos?
var t := leia_inteiro
enquanto t > 0 faça
  var total := 0
  para i de 1 até t faça
    a = leia_textos(" ")
    peso = escolha a.descarte(1).junte(" ")
      caso "suco de laranja" => 120
      caso "morango fresco"  =>  85
      caso "mamao"           =>  85
      caso "goiaba vermelha" =>  70
      caso "manga"           =>  56
      caso "laranja"         =>  50
      caso "brocolis"        =>  34
      caso _                 =>   0
    fim
    total := total + a[1].inteiro * peso
  fim
  se total > 130 então
    escreva "Menos {total - 130} mg"
  senãose total < 110 então
    escreva "Mais {110 - total} mg"
  senão
    escreva "{total} mg"
  fim
  t := leia_inteiro
fim

2493 - Jogo do Operador

Descrição do Problema: 2493 - Jogo do Operador

2493 - Jogo do Operador
var t := leia_inteiro
enquanto t > 0 faca
  jogos = para i de 1 ate t,
               a em [leia_textos("=")],
               b em [a[1].divida(" ").mapeie(_.inteiro)],
               x em [b[1]], y em [b[2]], z em [a[2].inteiro] gere
    (se x + y == z entao "+" senao "" fim)
    + (se x - y == z entao "-" senao "" fim)
    + (se x * y == z entao "*" senao "" fim)
  fim
  var passou := Lista(0, "")
  para i de 1 ate t faca
    a = leia_textos(" ")
    n, eh, r = a[1], a[2].inteiro, a[3].cabeca
    se nao (jogos[eh].contem(r) ou (jogos[eh] == "" e r == 'I')) entao passou := n :: passou fim
  fim
  se passou.tamanho == t entao
    escreva "None Shall Pass!"
  senaose passou.tamanho == 0 entao
    escreva "You Shall All Pass!"
  senão
    escreva passou.ordene.junte(" ")
  fim
  t := leia_inteiro
fim

2496 - A Única Chance

Descrição do Problema: 2496 - A Única Chance

2496 - A Única Chance
n = leia_inteiro
para i de 1 ate n faca
  m = leia_inteiro
  s = leia_texto
  trocas = para j de 1 ate m se s[j] - 'A' <> j - 1 gere 1 fim.tamanho
  se trocas < 3 entao
    escreva "There are the chance."
  senao
    escreva "There aren't the chance."
  fim
fim

2497 - Contando Ciclos

Descrição do Problema: 2497 - Contando Ciclos

2497 - Contando Ciclos
1
2
3
4
5
6
7
var n := leia_inteiro
var x := 0
enquanto n >= 0 faca
  x := x + 1
  escreva "Experiment {x}: {n div 2} full cycle(s)"
  n := leia_inteiro
fim