Pular para conteúdo

2200

Faixa de problemas: 2200-2299

Total resolvido: 23 de 100 problemas

2203 - Tempestade de Corvos

Descrição do Problema: 2203 - Tempestade de Corvos

Categoria: Iniciante

2203 - Tempestade de Corvos
1
2
3
4
5
6
7
8
var entrada = leia_texto
enquanto não eof faça
  a = entrada.divida(" ").mapeie(_.inteiro)
  x1, y1, x2, y2, v, r1, r2 = a[1], a[2], a[3], a[4], a[5], a[6], a[7]
  distancia = ((x2 - x1) ^ 2 + (y2 - y1) ^ 2) ^ 0.5 + 1.5 * v
  escreva se distancia > r1 + r2 então "N" senão "Y" fim
  entrada := leia_texto
fim

2204 - Pare A Bomba!

Descrição do Problema: 2204 - Pare A Bomba!

Categoria: Matemática

2204 - Pare A Bomba!
1
2
3
4
5
6
7
gcd(a, b: Texto) = se a == b então a senão "1" fim

t = leia_inteiro
para i de 1 até t faça
    ab = leia_textos(" ")
    escreva gcd(ab[1], ab[2])
fim

2217 - Nove

Descrição do Problema: 2217 - Nove

Categoria: Ad-Hoc

2217 - Nove
1
2
3
4
5
t = leia_inteiro
para i de 1 até t faça
  n = leia_inteiro
  escreva se n mod 2 == 0 então 1 senão 9 fim
fim

2218 - O Temível Evil-Son

Descrição do Problema: 2218 - O Temível Evil-Son

Categoria: Matemática

2218 - O Temível Evil-Son
1
2
3
4
5
6
7
8
9
t = leia_inteiro
para i de 1 até t faça
  n = leia_inteiro
  se n < 2 então
    escreva 2
  senão
    escreva n * (n + 1) div 2 + 1
  fim
fim

2221 - Batalha de Pomekons

Descrição do Problema: 2221 - Batalha de Pomekons

Categoria: Iniciante

2221 - Batalha de Pomekons
t = leia_inteiro
para i de 1 até t faça
  b = leia_inteiro
  j1, j2 = leia_inteiros(" ")
  ad, dd, ld = j1[1], j1[2], j1[3]
  ag, dg, lg = j2[1], j2[2], j2[3]
  vd = ad + dd - 2 * b * (ld mod 2)
  vg = ag + dg - 2 * b * (lg mod 2)
  escreva se vd > vg então "Dabriel" senãose vg > vd então "Guarte" senão "Empate" fim
fim

2229 - Dobradura

Descrição do Problema: 2229 - Dobradura

Categoria: Ad-Hoc · OBI 2002

2229 - Dobradura
var n := leia_inteiro
var t := 1
enquanto n >= 0 faça
  a = (2 ^ n + 1) ^ 2
  escreva "Teste {t}"
  escreva a formato "%.0f"
  escreva ""
  t := t + 1
  n := leia_inteiro
fim

2232 - Triângulo de Pascal

Descrição do Problema: 2232 - Triângulo de Pascal

Categoria: Matemática

2232 - Triângulo de Pascal
1
2
3
4
5
t = leia_inteiro
para i de 1 até t faça
  n = leia_inteiro
  escreva (2^n - 1) formato "%.0f"
fim

2234 - Cachorros-Quentes

Descrição do Problema: 2234 - Cachorros-Quentes

Categoria: Iniciante · Maratona SBC (1ª fase) 2016

2234 - Cachorros-Quentes
1
2
3
4
entrada = leia_inteiros(" ")
a = entrada[1]
b = entrada[2]
escreva (a / b) formato "%.2f"

2235 - Andando no Tempo

Descrição do Problema: 2235 - Andando no Tempo

Categoria: Iniciante · Maratona SBC (1ª fase) 2016

2235 - Andando no Tempo
1
2
3
4
5
6
7
x = leia_inteiros(" ")
a, b, c = x[1], x[2], x[3]
se a + b == c ou a == b + c ou b == a + c ou a == b ou a == c ou b == c então
  escreva "S"
senão
  escreva "N"
fim

2238 - Divisores

Descrição do Problema: 2238 - Divisores

Categoria: Matemática · Maratona SBC (1ª fase) 2016

2238 - Divisores
s = leia_inteiros(" ")
a, b, c, d = s[1], s[2], s[3], s[4]
var n := -1
var i := a
enquanto i <= c e n == -1 faça
  se i mod b <> 0 e c mod i == 0 e d mod i <> 0 então
    n := i
  fim
  i := i + a
fim
escreva n

2242 - Huaauhahhuahau

Descrição do Problema: 2242 - Huaauhahhuahau

Categoria: Strings · Maratona SBC (1ª fase) 2016

2242 - Huaauhahhuahau
1
2
3
4
5
6
7
a = leia_texto
b = a.selecione(c => "aeiou".contém(c))
se b == b.inverta então
  escreva "S"
senão
  escreva "N"
fim

2243 - Isósceles

Descrição do Problema: 2243 - Isósceles

Categoria: Paradigmas · Maratona SBC (1ª fase) 2016

2243 - Isósceles
min(x, y: Inteiro) = se x < y então x senão y fim

n = leia_inteiro
var a := leia_inteiros(" ").mutável
var esq := 0
para i de 1 até n faça
  esq := min(esq+1, a[i])
  a[i] := esq
fim
var dir, maior:= 0
para i de n até 1 passo -1 faça
  dir := min(dir+1, a[i])
  se dir > maior então maior := dir fim
fim
escreva maior

2247 - Cofrinhos da Vó Vitória

Descrição do Problema: 2247 - Cofrinhos da Vó Vitória

Categoria: Ad-Hoc · OBI 2003

2247 - Cofrinhos da Vó Vitória
var n := leia_inteiro
var teste := 0
enquanto n > 0 faça
    teste := teste + 1
    escreva "Teste {teste}"
    var diferença := 0
    para i de 1 até n faça
        moedas = leia_inteiros(" ")
        diferença := diferença + moedas[1] - moedas[2]
        escreva diferença
    fim
    escreva ""
    n := leia_inteiro
fim

2248 - Estágio

Descrição do Problema: 2248 - Estágio

Categoria: Ad-Hoc · OBI 2003

2248 - Estágio
var z := 1
var n := leia_inteiro
enquanto n > 0 faça
  var maior := -1
  var alunos: Lista[Inteiro] = []
  para i de 1 até n faça
   a = leia_inteiros(" ")
   se a[2] > maior então
     maior := a[2]
     alunos := [a[1]]
   senãose a[2] == maior
     alunos := a[1] :: alunos
   fim
  fim
  escreva "Turma {z}"
  imprima alunos.inverta.junte(" ")
  escreva " "
  escreva ""
  z := z + 1
  n := leia_inteiro
fim

2251 - Torres de Hanói

Descrição do Problema: 2251 - Torres de Hanói

Categoria: Ad-Hoc · OBI 2003

2251 - Torres de Hanói
h(a: Lista[Inteiro]): Lista[Inteiro] =
  se a.tamanho < 30 então h((a.cabeca * 2 + 1) :: a) senão a.inverta fim
hanoi = h([1])
var t := 0
var n := leia_inteiro
enquanto n > 0 faça
  t := t + 1
  escreva "Teste {t}"
  escreva hanoi[n]
  escreva ""
  n := leia_inteiro
fim

2253 - Validador de Senhas

Descrição do Problema: 2253 - Validador de Senhas

Categoria: Strings

2253 - Validador de Senhas
var s := leia_texto
enquanto não eof faça
  min = s.selecione(c => c >= 'a' e c <='z').tamanho
  mai = s.selecione(c => c >= 'A' e c <='Z').tamanho
  tam = s.selecione(c => c >= '0' e c <='9').tamanho

  se min > 0 e mai > 0 e tam > 0 e (min + mai + tam) == s.tamanho e s.tamanho >= 6 e s.tamanho <= 32 então
    escreva "Senha valida."
  senão
    escreva "Senha invalida."
  fim
  s := leia_texto
fim

2286 - Par ou Ímpar

Descrição do Problema: 2286 - Par ou Ímpar

Categoria: Ad-Hoc · OBI 2004

2286 - Par ou Ímpar
var n := leia_inteiro
var t := 0
enquanto n > 0 faça
  nomes = leia_textos(2)
  t := t + 1
  escreva "Teste {t}"
  para i de 1 até n faça
    soma = leia_inteiros(" ").injete(0)(_ + _)
    se soma mod 2 == 0 então
      escreva nomes[1]
    senão
      escreva nomes[2]
    fim
  fim
  escreva ""
  n := leia_inteiro
fim

2287 - Proteja sua Senha

Descrição do Problema: 2287 - Proteja sua Senha

Categoria: Ad-Hoc · OBI 2004

2287 - Proteja sua Senha
var teste := 1
var n := leia_inteiro
var nums := Lista(11, Lista(5, Lista(2, 0)))
var senha := Lista(11, Lista(6, ""))

enquanto n <> 0 faça
  para i de 1 até n faça
    entrada = leia_texto.divida(" ")                 

    nums[i][1][1] := entrada[1].inteiro
    nums[i][1][2] := entrada[2].inteiro

    nums[i][2][1] := entrada[3].inteiro
    nums[i][2][2] := entrada[4].inteiro

    nums[i][3][1] := entrada[5].inteiro
    nums[i][3][2] := entrada[6].inteiro

    nums[i][4][1] := entrada[7].inteiro
    nums[i][4][2] := entrada[8].inteiro

    nums[i][5][1] := entrada[9].inteiro
    nums[i][5][2] := entrada[10].inteiro

    senha[i][1] := entrada[11]
    senha[i][2] := entrada[12]
    senha[i][3] := entrada[13]
    senha[i][4] := entrada[14]
    senha[i][5] := entrada[15]
    senha[i][6] := entrada[16]
  fim 

  escreva "Teste {teste}"
  teste := teste + 1

  para k de 1 até 6 faça
    ix = (senha[1][k][1] - 'A') + 1
    nch = nums[1][ix][1]
    noh = nums[1][ix][2]

    var all := 1
    para i de 1 até n faça
      ixx = (senha[i][k][1] - 'A') + 1
      se nch <> nums[i][ixx][1] e nch <> nums[i][ixx][2] então
        all := 0
      fim
    fim

    se k <> 1 então
      imprima " "
    fim

    se all == 1 então
      imprima nch
    senão
      imprima noh
    fim 
  fim 
  imprima " "
  escreva ""
  escreva ""
  n := leia_inteiro
fim

2290 - Números Apaixornados

Descrição do Problema: 2290 - Números Apaixornados

Categoria: Estruturas e Bibliotecas

2290 - Números Apaixornados
enquanto leia_inteiro > 0 faça
    numeros = leia_textos(" ")

    apaixornados = numeros.ordene
                          .divida_quando(_ <> _)
                          .selecione(a => a.tamanho mod 2 == 1)
                          .mapeie(a => BigInt(a.cabeça))

    escreva apaixornados.ordene.junte(" ")
fim

2293 - Campo de Minhocas

Descrição do Problema: 2293 - Campo de Minhocas

Categoria: Ad-Hoc · OBI 2005

2293 - Campo de Minhocas
1
2
3
4
5
6
7
8
a = leia_inteiros(" ")
n, m = a[1], a[2]
mat = para i de 1 até n gere leia_inteiros(" ") fim
zero = para i de 1 até m gere 0 fim
linhas = mat.mapeie(x => x.injete(0)(_ + _))
colunas = mat.injete(zero)(
            (x, y) => para i de 1 até m gere x[i] + y[i] fim)
escreva (linhas + colunas).ordene.ultimo

2295 - Frota de Táxi

Descrição do Problema: 2295 - Frota de Táxi

Categoria: Ad-Hoc · OBI 2005

2295 - Frota de Táxi
entrada = leia_reais(" ")
a = entrada[1]
g = entrada[2]
ra = entrada[3]
rg = entrada[4]
va = ra / a
vg = rg / g
se va > vg então
  escreva "A"
senão
  escreva "G"
fim

2297 - Bafo

Descrição do Problema: 2297 - Bafo

Categoria: Ad-Hoc · OBI 2005

2297 - Bafo
var r := leia_inteiro
var t := 0
enquanto r > 0 faça
  var saldo := 0
  para i de 1 até r faça
    rodada = leia_inteiros(" ")
    saldo := saldo + rodada[1] - rodada[2]
  fim
  t := t + 1
  escreva "Teste {t}"
  escreva se saldo > 0 então "Aldo" senão "Beto" fim
  escreva ""
  r := leia_inteiro
fim

2298 - Mini-Poker

Descrição do Problema: 2298 - Mini-Poker

Categoria: Ad-Hoc · OBI 2005

2298 - Mini-Poker
n = leia_inteiro

para t de 1 até n faça
    cartas = leia_inteiros(" ")                             # [12, 3, 10, 3, 12]
               .ordene                                      # [3, 3, 10, 12, 12]
               .divida_quando(_ <> _)                       # [[3, 3], [10], [12, 12]]
               .ordene(c => c.tamanho * (-100) + c.cabeça)  # [[3, 3], [12, 12], 10]
               .mapeie(a => (a.cabeça, a.tamanho))          # [(3, 2), (12, 2), (10, 1)]

    pontos = escolha cartas
        caso [(a,1), _, _, _, (b,1)] se b == a + 4 => a + 200
        caso [(a,4), _]                            => a + 180
        caso [(a,3), (b,2)]                        => a + 160
        caso [(a,3), _, _]                         => a + 140
        caso [(a,2), (b,2), _]                     => 3 * b + 2 * a + 20
        caso [(a,2), _, _, _]                      => a
        caso _                                     => 0
    fim

    escreva "Teste " + t
    escreva pontos
    escreva ""
fim