Pular para conteúdo

2100

Faixa de problemas: 2100-2199

Total: 38 problemas

2108 - Contando Caracters

Descrição do Problema: 2108 - Contando Caracters

2108 - Contando Caracters
1
2
3
4
5
6
7
8
9
var s := leia_textos(" ")
var maior := ""
enquanto s.cabeça <> "0" faça
  escreva s.mapeie(_.tamanho).junte("-")
  maior := s.injete(maior)((a,b) => se a.tamanho > b.tamanho entao a senao b fim)
  s := leia_textos(" ")
fim
escreva ""
escreva "The biggest word: {maior}"

2116 - Diversão dos Alunos

Descrição do Problema: 2116 - Diversão dos Alunos

2116 - Diversão dos Alunos
a = leia_inteiros(" ").ordene
n, m = a[1], a[2]

crivo(nums: Lista[Inteiro]): Lista[Inteiro] = escolha nums
  caso []  => []
  caso num =>
    c = num.cabeca
    c :: crivo(num.selecione(x => x mod c <> 0))
fim
ints = para i de 2 ate m gere i fim
primos = crivo(ints).inverta

p1 = primos.descarte_enquanto(_ > n).cabeca
p2 = primos.descarte_enquanto(_ > m).cabeca

escreva p1 * p2

2126 - Procurando Subsequências

Descrição do Problema: 2126 - Procurando Subsequências

2126 - Procurando Subsequências
var t := 0
var n1, n2 := leia_texto
enquanto nao eof faça
  var cont, pos := 0
  para i de 0 até n2.tamanho - n1.tamanho faça
    var sub := verdadeiro
    para j de 1 até n1.tamanho faça
      sub := sub e n1[j] == n2[i+j]
    fim
    se sub então
      cont := cont + 1
      pos := i + 1
    fim
  fim
  t := t + 1
  escreva "Caso #{t}:"
  se cont > 0 então
    escreva "Qtd.Subsequencias: {cont}"
    escreva "Pos: {pos}"
  senão
    escreva "Nao existe subsequencia"
  fim
  escreva ""
  n1, n2 := leia_texto
fim

2129 - Fatorial

Descrição do Problema: 2129 - Fatorial

2129 - Fatorial
remove_zeros(a: Long): Long =
  se a mod 10 == 0 e a > 0
    entao remove_zeros(a div 10)
    senao a
  fim

var a: Long := 1
num =
  para i de 1 ate 1000000 gere
    var j := remove_zeros(i)
    a := remove_zeros(a * j) mod 1000000
    a mod 10
  fim.mutável

var t := 0
var n := leia_inteiro
enquanto n > 0 faça
    t := t + 1
    escreva "Instancia {t}"
    escreva num[n]
    escreva ""
    n := leia_inteiro
fim

2136 - Amigos do Habay

Descrição do Problema: 2136 - Amigos do Habay

2136 - Amigos do Habay
limpe(lista: Lista[Texto]) =
  lista.ordene.divida_quando(_ <> _).mapeie(_.cabeca)

var yes, no := Lista(0, "")
var amigo := ""
var entrada := leia_textos(" ")
enquanto entrada[1] <> "FIM" faca
  se entrada[2] == "YES" entao
    yes := entrada[1] :: yes
    se entrada[1].tamanho > amigo.tamanho entao
      amigo := entrada[1]
    fim
  senao
    no := entrada[1] :: no
  fim
  entrada := leia_textos(" ")
fim
escreva limpe(yes).junte("\n")
escreva limpe(no).junte("\n")
escreva ""
escreva "Amigo do Habay:"
escreva amigo

2137 - A Biblioteca do Senhor Severino

Descrição do Problema: 2137 - A Biblioteca do Senhor Severino

2137 - A Biblioteca do Senhor Severino
1
2
3
4
5
6
var n := leia_inteiro
enquanto n > 0 faca
  s = leia_textos(n)
  escreva s.ordene.junte("\n")
  n := leia_inteiro
fim

2138 - Dígito Mais Frequente

Descrição do Problema: 2138 - Dígito Mais Frequente

2138 - Dígito Mais Frequente
1
2
3
4
5
6
7
var a := leia_texto
enquanto nao eof faça
  grupos = a.ordene.divida_quando(_ <> _).ordene(_.tamanho).inverta
  mais_frequente = grupos.cabeça.cabeça
  escreva mais_frequente
  a := leia_texto
fim

2139 - Natal de Pedrinho

Descrição do Problema: 2139 - Natal de Pedrinho

2139 - Natal de Pedrinho
var entrada := leia_texto
var dias := 0

enquanto nao eof faça
  mes, dia = entrada.divida(" ")[1].inteiro, entrada.divida(" ")[2].inteiro

  escolha mes
    caso 1 => dias := (31 - dia) + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 25
    caso 2 => dias := (29 - dia) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 25
    caso 3 => dias := (31 - dia) + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 25
    caso 4 => dias := (30 - dia) + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 25
    caso 5 => dias := (31 - dia) + 30 + 31 + 31 + 30 + 31 + 30 + 25
    caso 6 => dias := (30 - dia) + 31 + 31 + 30 + 31 + 30 + 25
    caso 7 => dias := (31 - dia) + 31 + 30 + 31 + 30 + 25
    caso 8 => dias := (31 - dia) + 30 + 31 + 30 + 25
    caso 9 => dias := (30 - dia) + 31 + 30 + 25
    caso 10 => dias := (31 - dia) + 30 + 25
    caso 11 => dias := (30 - dia) + 25
    caso _ => dias := -2
  fim

  se ((mes == 12) e (dia <= 25)) então
    dias := 25 - dia
  senãose ((mes == 12) e (dia > 25)) então
    dias := -1
  fim

  se dias == 0 então
    escreva "E natal!"
  senãose dias == 1 então
    escreva "E vespera de natal!"
  senãose dias == -1 então
    escreva "Ja passou!"
  senãose dias > 1 então
    escreva "Faltam " + dias + " dias para o natal!"
  fim

  entrada := leia_texto
fim

2140 - Duas Notas

Descrição do Problema: 2140 - Duas Notas

2140 - Duas Notas
trocos = [4, 10, 20, 40, 50, 200, 7, 12, 22, 52, 102, 15, 25,
          55, 105, 30, 60, 110, 70, 120, 150]
var a:= leia_inteiros(" ")
enquanto a <> [0,0] faça
  se trocos.contém(a[2]-a[1]) então
    escreva "possible"
  senão
    escreva "impossible"
  fim
  a := leia_inteiros(" ")
fim

2143 - A Volta do Radar

Descrição do Problema: 2143 - A Volta do Radar

2143 - A Volta do Radar
var t := leia_inteiro
enquanto t > 0 faca
  para i de 1 ate t faca
    n = leia_inteiro
    se n mod 2 == 0 entao
      escreva 2 * n - 2
    senao
      escreva n div 2 * 4 + 1
    fim
  fim
  t := leia_inteiro
fim

2146 - Senha

Descrição do Problema: 2146 - Senha

2146 - Senha
1
2
3
4
5
var n := leia_inteiro
enquanto n > 0 faça
  escreva n - 1
  n := leia_inteiro
fim

2147 - Galopeira

Descrição do Problema: 2147 - Galopeira

2147 - Galopeira
1
2
3
4
5
c = leia_inteiro
para i de 1 ate c faca
  t = leia_texto
  escreva t.tamanho / 100 formato "%.2f"
fim

2149 - Sequência do Tio Phill Bonati

Descrição do Problema: 2149 - Sequência do Tio Phill Bonati

2149 - Sequência do Tio Phill Bonati
vet(x, y: BigInt, n: Inteiro): Lista[BigInt] =
  se n >= 18 então []
  senão
    c = se n mod 2 == 0 então x * y senão x + y fim
    c :: vet(y, c, n + 1)
  fim

v = 0 :: 1 :: vet(0, 1, 3)
var a := leia_inteiro
enquanto a > 0 faça
  escreva v[a]
  a := leia_inteiro
fim

2150 - Vogais Alienígenas

Descrição do Problema: 2150 - Vogais Alienígenas

2150 - Vogais Alienígenas
var vogais, entrada := leia_texto
enquanto nao eof faca
  var linha := entrada
  var diff := linha - vogais
  enquanto diff <> linha faca
    linha := linha - vogais
    diff := linha - vogais
  fim
  escreva entrada.tamanho - linha.tamanho
  vogais, entrada := leia_texto
fim

2152 - Pepe, Já Tirei a Vela!

Descrição do Problema: 2152 - Pepe, Já Tirei a Vela!

2152 - Pepe, Já Tirei a Vela!
n = leia_inteiro
para i de 1 ate n faca
  a = leia_inteiros(" ")
  hora, minuto, porta = a[1], a[2], a[3]
  horario = "{hora formato "%02d"}:{minuto formato "%02d"}"
  se porta == 1 entao
    escreva "{horario} - A porta abriu!"
  senao
    escreva "{horario} - A porta fechou!"
  fim
fim

2153 - Sanduicheiche

Descrição do Problema: 2153 - Sanduicheiche

2153 - Sanduicheiche
var palavra := leia_texto
enquanto não eof faça
  var resposta := palavra
  palavra := palavra.inverta
  para i de 1 até palavra.tamanho faça
    a = palavra.pegue(i)
    b = palavra.descarte(i).pegue(i)
    se a == b então
      resposta := palavra.descarte(i).inverta
    fim
  fim
  escreva resposta
  palavra := leia_texto
fim

2154 - Derivada de Polinômios

Descrição do Problema: 2154 - Derivada de Polinômios

2154 - Derivada de Polinômios
expoente(n: Inteiro) = se n > 1 entao n.texto senao "" fim

var t := leia_inteiro
enquanto t > 0 faça
  polinomio = leia_textos(" +").selecione(_ <> "").mapeie(termo =>
                termo.divida("x").mapeie(_.inteiro)
              )
  derivada = polinomio.mapeie(termo => (termo[1] * termo[2], termo[2] - 1))
  resposta = derivada.mapeie(termo => "{termo.primeiro}x{expoente(termo.segundo)}").junte(" + ")
  escreva resposta
  t := leia_inteiro
fim

2157 - Sequência Espelho

Descrição do Problema: 2157 - Sequência Espelho

2157 - Sequência Espelho
1
2
3
4
5
6
7
c = leia_inteiro
para i de 1 ate c faca
  a = leia_inteiros(" ")
  m, n = a[1], a[2]
  s = para j de m ate n gere j fim.junte("")
  escreva s + s.inverta
fim

2158 - Ajudando o Tio Cláudio

Descrição do Problema: 2158 - Ajudando o Tio Cláudio

2158 - Ajudando o Tio Cláudio
var c := 0
var entrada := leia_texto
enquanto nao eof faca
  a = entrada.divida(" ").mapeie(i => BigInt(i))
  fp, fh = a[1], a[2]
  lig = (5 * fp + 6 * fh) div 2
  ato = 2 + lig - fp - fh
  c := c + 1
  escreva "Molecula #{c}.:."
  escreva "Possui {ato} atomos e {lig} ligacoes"
  escreva ""
  entrada := leia_texto
fim

2159 - Número Aproximado de Primos

Descrição do Problema: 2159 - Número Aproximado de Primos

2159 - Número Aproximado de Primos
1
2
3
4
n = leia_inteiro
p = n / log(n)
m = 1.25506 * p
escreva "{p formato "%.1f"} {m formato "%.1f"}"

2160 - Nome no Formulário

Descrição do Problema: 2160 - Nome no Formulário

2160 - Nome no Formulário
1
2
3
4
5
6
s = leia_texto
se s.tamanho <= 80 então
  escreva "YES"
senão
  escreva "NO"
fim

2161 - Raiz Quadrada de 10

Descrição do Problema: 2161 - Raiz Quadrada de 10

2161 - Raiz Quadrada de 10
1
2
3
4
5
6
7
8
n = leia_inteiro

var fracao := 0.0
para i de 1 até n faça
  fracao := 1 / (6 + fracao)
fim

escreva (3 + fracao) formato "%.10f"

2162 - Picos e Vales

Descrição do Problema: 2162 - Picos e Vales

2162 - Picos e Vales
n = leia_inteiro
nums = leia_inteiros(" ")

op = se nums[1] > nums[2] entao
  (a, b: Inteiro) => a <= b
senão
  (a, b: Inteiro) => a >= b
fim

saida = 1 :: para i de 2 até n, par em [i mod 2 == 0] se
               par e op(nums[i - 1], nums[i]) ou
               não par e op(nums[i], nums[i - 1]) gere 0 fim

escreva saida.último

2163 - O Despertar da Força

Descrição do Problema: 2163 - O Despertar da Força

2163 - O Despertar da Força
a = leia_inteiros(" ")
n, m = a[1], a[2]
var l1 := ""
var l2, l3 := leia_texto
var x, y := 0
para i de 2 ate n - 1 faca
  l1, l2, l3 := l2, l3, leia_texto
  se l2.contains("7 42 7") e l1.contains("7 7 7") e l3.contains("7 7 7") entao
    p1, p2, p3 = l1.divida(" "), l2.divida(" "), l3.divida(" ")
    para j de 2 ate m - 1 faca
      se p1[j-1] == "7" e p1[j] == "7"  e p1[j+1] == "7" e
         p2[j-1] == "7" e p2[j] == "42" e p2[j+1] == "7" e
         p3[j-1] == "7" e p3[j] == "7"  e p3[j+1] == "7" entao
        x, y := i, j
      fim
    fim
  fim
fim
escreva "{x} {y}"

2164 - Fibonacci Rápido

Descrição do Problema: 2164 - Fibonacci Rápido

2164 - Fibonacci Rápido
1
2
3
4
n = leia_inteiro
r5 = 5 ^ 0.5
fib = (((1 + r5) / 2) ^ n - ((1 - r5) / 2) ^ n) / r5
escreva "{fib formato "%.1f"}"

2165 - Tuitando

Descrição do Problema: 2165 - Tuitando

2165 - Tuitando
1
2
3
4
5
6
n = leia_texto
se n.tamanho <= 140 então
  escreva "TWEET"
senão
  escreva "MUTE"
fim

2166 - Raiz Quadrada de 2

Descrição do Problema: 2166 - Raiz Quadrada de 2

2166 - Raiz Quadrada de 2
1
2
3
4
5
6
n = leia_inteiro
var r := 0.0
para i de 1 até n faça
  r := 1 / (2 + r)
fim
escreva (r + 1) formato "%.10f"

2167 - Falha do Motor

Descrição do Problema: 2167 - Falha do Motor

2167 - Falha do Motor
1
2
3
4
5
6
7
8
9
n = leia_inteiro
a = leia_inteiros(" ")
var queda := 0
para i de 2 até n se queda == 0 faça
  se a[i]< a[i-1] então
    queda := i
  fim
fim
escreva queda

2168 - Crepúsculo em Portland

Descrição do Problema: 2168 - Crepúsculo em Portland

2168 - Crepúsculo em Portland
n = leia_inteiro
res = Matriz.mutável(n, n, 'S')
mat = para i de 1 até n + 1 gere leia_inteiros(" ") fim
para i de 1 até n, j de 1 até n faça
  se mat[i][j] + mat[i][j+1] + mat[i+1][j] + mat[i+1][j+1] < 2 então
    res[i][j] := 'U'
  fim
fim
para linha em res faça
  escreva linha.junte("")
fim

2170 - Juros do Projeto

Descrição do Problema: 2170 - Juros do Projeto

2170 - Juros do Projeto
var t := 1
var a := leia_texto
enquanto nao eof faça
  b = a.divida(" ").mapeie(_.real)
  x, y = b[1], b[2]
  juros = (y / x - 1) * 100
  escreva "Projeto {t}:"
  escreva "Percentual dos juros da aplicacao: {juros formato "%.2f"} %"
  escreva ""
  a := leia_texto
  t := t + 1
fim

2172 - Evento

Descrição do Problema: 2172 - Evento

2172 - Evento
1
2
3
4
5
var entrada := leia_inteiros(" ")
enquanto entrada[2] <> 0 faça
  escreva entrada[1] * entrada[2]
  entrada := leia_inteiros(" ")
fim

2174 - Coleção de Pomekon

Descrição do Problema: 2174 - Coleção de Pomekon

2174 - Coleção de Pomekon
1
2
3
4
5
6
7
8
9
n = leia_inteiro
nomes = leia_textos(n).ordene
var pokemons := 150
para i de 2 até n faça
  se nomes[i] <> nomes[i - 1] então
    pokemons := pokemons - 1
  fim
fim
escreva "Falta(m) {pokemons} pomekon(s)."

2175 - Qual o Mais Rápido?

Descrição do Problema: 2175 - Qual o Mais Rápido?

2175 - Qual o Mais Rápido?
a = leia_reais(" ")
o, b, i = a[1], a[2], a[3]
se o < b e o < i entao
  escreva "Otavio"
senaose b < o e b < i entao
  escreva "Bruno"
senaose i < o e i < b entao
  escreva "Ian"
senao
  escreva "Empate"
fim

2176 - Paridade

Descrição do Problema: 2176 - Paridade

2176 - Paridade
1
2
3
a = leia_texto
imprima a
escreva a.selecione(_ == '1').tamanho mod 2

2180 - Viagem à Marte na Velocidade de Primo

Descrição do Problema: 2180 - Viagem à Marte na Velocidade de Primo

2180 - Viagem à Marte na Velocidade de Primo
primo(n: Inteiro): Lógico =
  n mod 2 > 0 e (para i de 2 ate raiz(n).inteiro se n mod i == 0 gere i fim == [])

primos(inicio, quantos: Inteiro): Lista[Inteiro] =
  se quantos > 0 então
    se primo(inicio) então
      inicio :: primos(inicio + 1, quantos - 1)
    senão
      primos(inicio + 1, quantos)
    fim
  senão
    []
  fim

n = leia_inteiro
soma = primos(n, 10).injete(0)(_ + _)
horas = 60000000 div soma
dias = horas div 24

escreva "{soma} km/h"
escreva "{horas} h / {dias} d"

2187 - Bits Trocados

Descrição do Problema: 2187 - Bits Trocados

2187 - Bits Trocados
var t := 0
var v := leia_inteiro
enquanto v > 0 faca
  i = v div 50
  j = v mod 50 div 10
  k = v mod 10 div 5
  l = v mod 5
  t := t + 1
  escreva "Teste {t}"
  escreva "{i} {j} {k} {l}"
  escreva ""
  v := leia_inteiro
fim

2188 - Macaco-prego

Descrição do Problema: 2188 - Macaco-prego

2188 - Macaco-prego
var teste := 0
var n := leia_inteiro
enquanto n > 0 faça
  var x, v := -10000
  var y, u :=  10000
  para i de 1 até n faça
    entrada = leia_inteiros(" ")
    se entrada[1] > x então x := entrada[1] fim
    se entrada[2] < y então y := entrada[2] fim
    se entrada[3] < u então u := entrada[3] fim
    se entrada[4] > v então v := entrada[4] fim
  fim
  teste := teste + 1
  escreva "Teste {teste}"
  se x < u e v < y então
    escreva "{x} {y} {u} {v}"
  senão
    escreva "nenhum"
  fim
  escreva ""
  n := leia_inteiro
fim

2189 - Quermesse

Descrição do Problema: 2189 - Quermesse

2189 - Quermesse
comparar(a, b: Inteiro) =
  se a == b ou a < 0 então
    - abs(a)
  senão
    a + 1
  fim

var n := leia_inteiro
var t := 0
enquanto n > 0 faça
  ingressos = leia_inteiros(" ")
  t := t + 1
  escreva "Teste {t}"
  escreva - ingressos.injete(1)(comparar)
  escreva ""
  n := leia_inteiro
fim