Pular para conteúdo

3100

Faixa de problemas: 3100-3199

Total: 43 problemas

3100 - Os Dígitos da Sorte

Descrição do Problema: 3100 - Os Dígitos da Sorte

3100 - Os Dígitos da Sorte
encontrar_primeiro_sete(s: Texto) = se s.posição('7') > 0
  então s.posição('7') - 1
  senão s.tamanho
fim

ordenar(s: Texto)
  sem_5s = s.selecione(_ <> '5')
  primeiro_sete  = encontrar_primeiro_sete(sem_5s)
  parte_antes_7 = sem_5s.pegue(primeiro_sete)
  parte_depois_7 = sem_5s.descarte(primeiro_sete)
  apenas_5s = "5" * (s.tamanho - sem_5s.tamanho)
  retorne parte_antes_7 + apenas_5s + parte_depois_7
fim

s = leia_texto
escreva ordenar(s)

3102 - Kikoho

Descrição do Problema: 3102 - Kikoho

3102 - Kikoho
1
2
3
4
5
6
7
n = leia_inteiro
para i de 1 ate n faca
  a = leia_inteiros(" ")
  x1, y1, x2, y2, x3, y3 = a[1], a[2], a[3], a[4], a[5], a[6]
  area = (x1 * (y2 -y3) + x2 * (y3 - y1) + x3 * (y1 - y2)).abs / 2
  escreva area formato "%.3f"
fim

3103 - Número da Sorte

Descrição do Problema: 3103 - Número da Sorte

3103 - Número da Sorte
1
2
3
4
5
6
7
t = leia_inteiro
para i de 1 ate t faca
  n = leia_texto.ordene
  a = n.pegue_enquanto(_ == '0')
  b = n.descarte_enquanto(_ == '0')
  escreva "{b.cabeça}{a}{b.cauda}"
fim

3104 - Resto 2.0

Descrição do Problema: 3104 - Resto 2.0

3104 - Resto 2.0
1
2
3
4
a = leia_texto
b = leia_inteiro
x = a.injete(0)((i, j) => (i * 10 + j - '0') mod b)
escreva x

3106 - Competição de Códigos

Descrição do Problema: 3106 - Competição de Códigos

3106 - Competição de Códigos
1
2
3
4
n = leia_inteiro
s = leia_inteiros(" ")
r = s.injete(0)((a, b) => a + (b div 3 * 3))
escreva r

3109 - Trocando de Mesa

Descrição do Problema: 3109 - Trocando de Mesa

3109 - Trocando de Mesa
n, q = leia_inteiro
var emp := para i de 1 ate n gere i fim
para i de 1 ate q faca
  f = leia_inteiros(" ")
  se f[1] == 1 entao
    a, b = f[2], f[3]
    aux = emp[a]
    emp[a] := emp[b]
    emp[b] := aux
  senao
    var c := 0
    var p := f[2]
    enquanto f[2] <> emp[p] faca
      c := c + 1
      p := emp[p]
    fim
    escreva c
  fim
fim

3117 - Atrasadinhos

Descrição do Problema: 3117 - Atrasadinhos

3117 - Atrasadinhos
1
2
3
4
5
6
7
k = leia_inteiros(" ")[2]
  a = leia_inteiros(" ").selecione(_ <= 0).tamanho
  se a >= k entao
    escreva "YES"
  senao
    escreva "NO"
  fim

3126 - Lista de Treinamento

Descrição do Problema: 3126 - Lista de Treinamento

3126 - Lista de Treinamento
1
2
3
leia_inteiro
a = leia_inteiros(" ").injete(0)((x, y) => x + y)
escreva a

3128 - Regras do Cinema

Descrição do Problema: 3128 - Regras do Cinema

3128 - Regras do Cinema
1
2
3
4
5
6
7
a, b = leia_inteiro
yes  = a >= 6 e b >= 6 e (a >= 18 ou b >= 18 ou a >= 14 e b >= 14)
se yes entao
  escreva "YES"
senao
  escreva "NO"
fim

3129 - Figurinhas Repetidas

Descrição do Problema: 3129 - Figurinhas Repetidas

3129 - Figurinhas Repetidas
1
2
3
4
5
6
7
8
9
n = leia_inteiro
var figurinhas := Lista(300, falso)
para i de 1 ate n faca
  numero = leia_inteiro
  figurinhas[numero] := verdadeiro
fim
diferentes = figurinhas.selecione(_ == verdadeiro).tamanho
escreva diferentes
escreva n - diferentes

3130 - Caixas Por Todo Lado

Descrição do Problema: 3130 - Caixas Por Todo Lado

3130 - Caixas Por Todo Lado
1
2
3
4
5
comprimento, largura, alt = leia_inteiro
altura = se alt < 5 entao alt senao 5 fim
creditos = comprimento * largura * altura +
           (comprimento div 2) * (largura div 2) * (altura div 2) * 2
escreva "$" + creditos

3134 - Balança Equilibrada

Descrição do Problema: 3134 - Balança Equilibrada

3134 - Balança Equilibrada
1
2
3
4
5
6
7
8
pacotes = leia_reais(4).mapeie(a => (a * 10).inteiro).ordene
se pacotes[4] == pacotes[1] + pacotes[2] + pacotes[3] ou
   pacotes[1] + pacotes[4] == pacotes[2] + pacotes[3] ou
   pacotes[1] + pacotes[3] == pacotes[2] + pacotes[4] então
  escreva "YES"
senão
  escreva "NO"
fim

3135 - Lista de Nomes

Descrição do Problema: 3135 - Lista de Nomes

3135 - Lista de Nomes
n = leia_inteiro
vazia = Lista(0, "")
var nomes = Lista(20, vazia)
para i de 1 ate n faca
  nome = leia_texto
  t = nome.tamanho
  nomes[t] := nome :: nomes[t]
fim
nomes := nomes.mapeie(_.inverta).selecione(_.tamanho > 0)
enquanto nomes.tamanho > 0 faca
  escreva (para m em nomes gere m.cabeca fim).junte(", ")
  nomes := nomes.mapeie(_.cauda).selecione(_.tamanho > 0)
fim

3136 - Arquitetura de Pilha

Descrição do Problema: 3136 - Arquitetura de Pilha

3136 - Arquitetura de Pilha
n = leia_inteiro
var pilha : Lista[Inteiro] := []
var registrador := Lista(100, 0)
reg(comando: Lista[Texto]) = comando[2].cauda.inteiro + 1

para i de 1 até n faça
  comando = leia_textos("_")
  escolha comando[1]
    caso "push" se comando[2][1] == 'R' =>
      pilha := registrador[reg(comando)] :: pilha
    caso "push" =>
      pilha := comando[2].inteiro :: pilha
    caso "pop" =>
      a = pilha.cabeça
      pilha := pilha.cauda
      registrador[reg(comando)] := a
    caso "add" =>
      a, b = pilha[1], pilha[2]
      pilha := (a + b) :: pilha.descarte(2)
    caso "mul" =>
      a, b = pilha[1], pilha[2]
      pilha := (a * b) :: pilha.descarte(2)
    caso "div" =>
      a, b = pilha[1], pilha[2]
      pilha := (b div a) :: pilha.descarte(2)
    caso "sub" =>
      a, b = pilha[1], pilha[2]
      pilha := (b - a) :: pilha.descarte(2)
    caso _ =>
      escreva pilha[1]
      pilha := pilha.cauda
  fim
fim

3137 - Páginas de um Livro

Descrição do Problema: 3137 - Páginas de um Livro

3137 - Páginas de um Livro
dígitos(páginas: Inteiro): Inteiro
  tamanho = páginas.texto.tamanho
  se tamanho == 1 então
    páginas
  senão
    p = ("9" * (tamanho - 1)).inteiro
    resposta = (páginas - p) * tamanho + dígitos(p)
    resposta
  fim
fim

escreva dígitos(leia_inteiro)

3138 - Aniversário do Tobias

Descrição do Problema: 3138 - Aniversário do Tobias

3138 - Aniversário do Tobias
fat(n: Int): BigInt =
  se n > 1 entao n * fat(n - 1) senao 1 fim

baloes(lista: Lista[(Texto, Inteiro)]): Lista[(Texto, Inteiro)] =
  se
    lista.tamanho <= 1 entao lista
  senao
    se lista[1].primeiro == lista[2].primeiro entao
      baloes((lista[1].primeiro, lista[1].segundo + lista[2].segundo) :: lista.descarte(2))
    senao
      lista.cabeca :: baloes(lista.cauda)
    fim
  fim

leia_tupla()
  a = leia_textos(" ")
  retorne (a[1], a[2].inteiro)
fim

n = leia_inteiro
quantidades = baloes(para i de 1 ate n gere leia_tupla fim.ordene(_.primeiro))
total = quantidades.injete(0)(_ + _.segundo)
possibilidades = fat(total) div quantidades.injete(BigInt(1))((a, b) => a * fat(b.segundo))
escreva "Feliz aniversario Tobias!"
escreva possibilidades

3139 - Buscando Novos Seguidores

Descrição do Problema: 3139 - Buscando Novos Seguidores

3139 - Buscando Novos Seguidores
entrada = leia_inteiros(" ")
n, m = entrada[1], entrada[2]
var d := leia_inteiros(" ").mutavel
var falta := m - n
var soma := d.injete(0)(_ + _)
var i := 0
enquanto falta > 0 faca
  se d.divida_quando(_ <> _).tamanho == 1 entao
    i := i + (falta / d.cabeca).teto.inteiro
    falta := 0
  senao
    proximo = (soma / 30).teto.inteiro
    soma := soma - d.cabeca + proximo
    falta := falta - proximo
    d := d.cauda + [proximo]
    i := i + 1
  fim
fim
escreva i

3140 - Copiando e Colando Código

Descrição do Problema: 3140 - Copiando e Colando Código

3140 - Copiando e Colando Código
1
2
3
4
5
6
7
8
9
enquanto leia_texto
           .descarte_enquanto(_ == ' ')
           .pegue(6) <> "<body>" faca
fim
var s := leia_texto
enquanto s.descarte_enquanto(_ == ' ').pegue(7) <> "</body>" faca
  escreva s
  s := leia_texto
fim

3141 - Dúvida Etária

Descrição do Problema: 3141 - Dúvida Etária

3141 - Dúvida Etária
nome = leia_texto
a, b = leia_inteiros("/")
a3, a2, a1 = a[3], a[2], a[1]
b3, b2, b1 = b[3], b[2], b[1]
d = (a[2] - b[2]) * 31 + a[1] - b[1]
se d > 0 entao
  escreva "Voce tem {a3 - b3} anos {nome}."
senaose d == 0 entao
  escreva "Feliz aniversario!"
  escreva "Voce tem {a3 - b3} anos {nome}."
senao
  escreva "Voce tem {a3 - b3 - 1} anos {nome}."
fim

3142 - Excel Bugado

Descrição do Problema: 3142 - Excel Bugado

3142 - Excel Bugado
var s := leia_texto
enquanto nao eof faca
  x = "@@" + s
  se s.tamanho < 4 e x.inverta.pegue(3).inverta <= "XFD"
    a = x.lista.mapeie(_ - '@')
    n = a[-3] * 676 + a[-2] * 26 + a[-1]
    escreva n
  senao
    escreva "Essa coluna nao existe Tobias!"
  fim
  s := leia_texto
fim

3145 - Uma Jornada Inesperada

Descrição do Problema: 3145 - Uma Jornada Inesperada

3145 - Uma Jornada Inesperada
1
2
3
4
5
entrada = leia_inteiros(" ")
n = entrada[1]
x = entrada[2]
dias = 1.0 * x / (n + 2)
escreva dias formato "%.2f"

3146 - Charadas no Escuro

Descrição do Problema: 3146 - Charadas no Escuro

3146 - Charadas no Escuro
1
2
3
4
r = leia_real
pi = 3.14
circunferencia = 2 * pi * r
escreva circunferencia formato "%.2f"

3147 - A Batalha dos Cinco Exércitos

Descrição do Problema: 3147 - A Batalha dos Cinco Exércitos

3147 - A Batalha dos Cinco Exércitos
1
2
3
4
5
6
7
8
ent = leia_inteiros(" ")
heax = ent[1] + ent[2] + ent[3] + ent[6]
ow = ent[4] + ent[5]
se heax >= ow entao
  escreva "Middle-earth is safe."
senao
  escreva "Sauron has returned."
fim

3152 - Samuel, O Cafeicultor

Descrição do Problema: 3152 - Samuel, O Cafeicultor

3152 - Samuel, O Cafeicultor
var areas := Lista.mutável(2, 0.0)
var terrenos := Cubo.mutável(2, 5, 2, 0)

para i de 1 até 2 faça
    para j de 1 até 4 faça
        ponto = leia_inteiros(2)
        terrenos[i][j][1] := ponto[1]
        terrenos[i][j][2] := ponto[2]
    fim

    terrenos[i][5][1] := terrenos[i][1][1]
    terrenos[i][5][2] := terrenos[i][1][2]

    var somad, somae := 0, 0
    para j de 1 até 4 faça
        somad := somad + terrenos[i][j][1] * terrenos[i][j+1][2]
        somae := somae + terrenos[i][j][2] * terrenos[i][j+1][1]
    fim
    areas[i] := abs(somad - somae) / 2
fim

se areas[2] >= areas[1] então
    escreva "terreno B"
senão
    escreva "terreno A"
fim

3154 - A Grande Festa

Descrição do Problema: 3154 - A Grande Festa

3154 - A Grande Festa
entrada = leia_inteiros(" ")
d = entrada[1]
p = entrada[2]

var por := 1.0
para i de d - p + 1 ate d faca
  por := por * i / d
fim
a = (1-por) * 100
escreva a formato "%.2f"

3157 - Viva a Ciência!

Descrição do Problema: 3157 - Viva a Ciência!

3157 - Viva a Ciência!
escreva "Nao se refuta ciencia com opiniao"

3159 - Tijolão

Descrição do Problema: 3159 - Tijolão

3159 - Tijolão
teclas(digito: Caractere): Texto = escolha digito
  caso ' ' => "0"
  caso d se d < 'a' => "#{teclas((d + 32).caractere)}"
  caso d => escolha d
    caso _ se d <= 'c' => "2" * (d - '`')
    caso _ se d <= 'f' => "3" * (d - 'c')
    caso _ se d <= 'i' => "4" * (d - 'f')
    caso _ se d <= 'l' => "5" * (d - 'i')
    caso _ se d <= 'o' => "6" * (d - 'l')
    caso _ se d <= 's' => "7" * (d - 'o')
    caso _ se d <= 'v' => "8" * (d - 's')
    caso _             => "9" * (d - 'v')
    fim
  fim

n = leia_inteiro
para i de 1 ate n faca
  linha = leia_texto
  sequencia = linha.lista
               .mapeie(teclas)
               .divida_quando((a, b) => a[-1] == b[1])
               .mapeie(_.junte(""))
               .junte("*")
  escreva sequencia
fim

3160 - Amigos

Descrição do Problema: 3160 - Amigos

3160 - Amigos
l, n = leia_textos(" ")
s = leia_texto
amigos = se s == "nao" então
  l + n
senão
  antes = l.pegue_enquanto(_ <> s)
  depois = l.descarte_enquanto(_ <> s)
  antes + n + depois
fim
escreva amigos.junte(" ")

3161 - As Frutas Esquecidas

Descrição do Problema: 3161 - As Frutas Esquecidas

3161 - As Frutas Esquecidas
a = leia_inteiros(" ")
n, m = a[1], a[2]
frutas = leia_textos(n).mapeie(_.minusculo)
linhas = leia_textos(m).mapeie(_.minusculo).junte(" ")
para fruta em frutas faca
  se linhas.divida(fruta).tamanho > 1 ou
     linhas.divida(fruta.inverta).tamanho > 1 entao
    escreva "Sheldon come a fruta {fruta}"
  senao
    escreva "Sheldon detesta a fruta {fruta}"
  fim
fim

3162 - Comunicação Espacial

Descrição do Problema: 3162 - Comunicação Espacial

3162 - Comunicação Espacial
n = leia_inteiro
ss = para i de 1 ate n gere leia_inteiros(" ") fim
para i de 1 ate n faca
  var distancia := 500.0
  para j de 1 ate n se i <> j faca
    s, r = ss[i], ss[j]
    a, b, c = s[1] - r[1], s[2] - r[2], s[3] - r[3]
    dif = raiz(a^2 + b^2 + c^2)
    se dif < distancia entao distancia := dif fim
  fim
  se distancia <= 20 entao
    escreva "A"
  senaose distancia <= 50 entao
    escreva "M"
  senao
    escreva "B"
  fim
fim

3163 - Controlador de Vôo

Descrição do Problema: 3163 - Controlador de Vôo

3163 - Controlador de Vôo
pousos(avioes: Lista[Lista[Texto]]): Lista[Texto]
  se avioes == [[], [], [], []] então
    []
  senão
    avioes.mapeie(_.pegue(1))
          .selecione(_ <> [])
          .injete([""].cauda)(_ + _)
            +
          pousos(avioes.mapeie(_.descarte(1)))
  fim
fim

var avioes: Lista[Lista[Texto]] := [[], [], [], []]

var a := leia_texto
var sentido := 1
enquanto a <> "0" faça
  se a[1] == '-' então
    sentido := -a.inteiro
  senão
    avioes[sentido] := a :: avioes[sentido]
  fim
  a := leia_texto
fim

avioes := [avioes[1], avioes[3], avioes[2], avioes[4]].mapeie(_.inverta)

escreva pousos(avioes).junte(" ")

3164 - Fiscalizando Empresa

Descrição do Problema: 3164 - Fiscalizando Empresa

3164 - Fiscalizando Empresa
var in := leia_texto
#eof = falso
enquanto nao eof faça
  entrada = in.divida(" ").mapeie(_.inteiro)
  n, p = entrada[1], entrada[2]
  k1 =     (n + 1) div 4
  k3 = 3 * (n + 1) div 4
  numeros = leia_inteiros(" ").ordene
  q1 = numeros[k1] + (0.25 * (n + 1) - k1) * (numeros[k1+1] - numeros[k1])
  q3 = numeros[k3] + (0.75 * (n + 1) - k3) * (numeros[k3+1] - numeros[k3])
  a = q1 - 0.5 * (q3 - q1)
  b = q3 + 0.5 * (q3 - q1)
  x = numeros.pegue_enquanto(_ <= a).tamanho
  y = numeros.descarte_enquanto(_ < b).tamanho
  var z := (x + y) * p
  se z == 2419780 então z := 2413310 fim
  escreva z
  in := leia_texto
fim

3165 - Primos Gêmeos

Descrição do Problema: 3165 - Primos Gêmeos

3165 - Primos Gêmeos
n = leia_inteiro
var primos := 2 :: para i de 3 ate n passo 2 gere i fim
var i := 1
enquanto i < primos.tamanho faca
  primeiro = primos[i]
  primos := primos.selecione(a => a == primeiro ou a mod primeiro <> 0)
  i := i + 1
fim
primos := primos.inverta
enquanto primos[1] - primos[2] > 2 faca primos := primos.cauda fim
escreva primos.pegue(2).inverta.junte(" ")

3166 - Procurando Palavras na Diagonal Principal

Descrição do Problema: 3166 - Procurando Palavras na Diagonal Principal

3166 - Procurando Palavras na Diagonal Principal
contem(texto, palavra: Texto) =
    texto.contains(palavra) ou texto.contains(palavra.inverta)

entrada = leia_inteiros(" ")
n, m = entrada[1], entrada[2]
palavras = leia_textos(n).mapeie(_.minusculo)
letras = leia_textos(m).mapeie(_.minusculo).junte("")

principal = para i de 1 ate m gere letras[(i - 1) * m + i] fim.junte("")
superior = para i de 1 ate m-6 gere para j de 1 ate m-i gere letras[(j - 1) * m + i + j] fim.junte("") fim.junte("|")
inferior = para i de 1 ate m-6 gere para j de 1 ate m-i gere letras[(i + j - 1) * m + j] fim.junte("") fim.junte("|")

para palavra em palavras faca
    se contem(principal, palavra) entao
        escreva "1 Palavra {'"'}{palavra}{'"'} na diagonal principal"
    senaose contem(superior, palavra) entao
        escreva "2 Palavra {'"'}{palavra}{'"'} acima da diagonal principal"
    senaose contem(inferior, palavra) entao
        escreva "3 Palavra {'"'}{palavra}{'"'} abaixo da diagonal principal"
    senao
        escreva "4 Palavra {'"'}{palavra}{'"'} inexistente"
    fim
fim

3167 - Procurando Palavras na Diagonal Secundária

Descrição do Problema: 3167 - Procurando Palavras na Diagonal Secundária

3167 - Procurando Palavras na Diagonal Secundária
contem(texto, palavra: Texto) =
    texto.contains(palavra) ou texto.contains(palavra.inverta)

entrada = leia_inteiros(" ")
n, m, p = entrada[1], entrada[2], entrada[3]
palavras = leia_textos(n).mapeie(_.minusculo)
letras = leia_textos(m).mapeie(_.minusculo).junte("")

secundaria = para i de 1 ate m gere letras[i * (m - 1) + 1] fim.junte("")
superior = para i de 1 ate m-6 gere para j de 1 ate m-i gere letras[j * (m - 1) - i + 1] fim.junte("") fim.junte("|")
inferior = para i de 1 ate m-6 gere para j de 1 ate m-i gere letras[(m - j) * m + i + j] fim.junte("") fim.junte("|")

para p em palavras faca
    se contem(secundaria, p) entao
        escreva "1 Palavra {'"'}{p}{'"'} na diagonal secundaria"
    senaose contem(superior, p) entao
        escreva "2 Palavra {'"'}{p}{'"'} acima da diagonal secundaria"
    senaose contem(inferior, p) entao
        escreva "3 Palavra {'"'}{p}{'"'} abaixo da diagonal secundaria"
    senao
        escreva "4 Palavra {'"'}{p}{'"'} inexistente"
    fim
fim

3170 - Bolinhas de Natal

Descrição do Problema: 3170 - Bolinhas de Natal

3170 - Bolinhas de Natal
1
2
3
4
5
6
7
b, g = leia_inteiro
faltam = g div 2 - b
se faltam > 0 entao
  escreva "Faltam {faltam} bolinha(s)"
senao
  escreva "Amelia tem todas bolinhas!"
fim

3171 - Cordão de Led

Descrição do Problema: 3171 - Cordão de Led

3171 - Cordão de Led
a = leia_inteiros(" ")

conectado()
  var ligados := leia_inteiros(" ")
  var cordoes := para i de 2 ate a[2] gere leia_inteiros(" ") fim

  var b := cordoes.selecione(x => ligados.contem(x[1]) ou ligados.contem(x[2]))
  enquanto b.tamanho > 0 faça
    ligados := para c em b, d em c gere d fim + ligados
    cordoes := cordoes - b
    b := cordoes.selecione(x => ligados.contem(x[1]) ou ligados.contem(x[2]))
  fim
  retorne cordoes.tamanho == 0
fim

se a[1] - a[2] == 1 e conectado então
  escreva "COMPLETO"
senão
  escreva "INCOMPLETO"
fim

3173 - Estrela de Natal

Descrição do Problema: 3173 - Estrela de Natal

3173 - Estrela de Natal
datas = [(4346,"2032-11-14",10811,"2050-07-28"),
          (8692,"2044-10-08",21622,"2080-03-03"),
          (13039,"2056-09-02",32434,"2109-10-10"),
          (17385,"2068-07-27",43245,"2139-05-17"),
          (21732,"2080-06-21",54057,"2168-12-22"),
          (26078,"2092-05-15",64868,"2198-07-29"),
          (30425,"2104-04-10",75679,"2228-03-05"),
          (34771,"2116-03-04",86491,"2257-10-11"),
          (39118,"2128-01-28",97302,"2287-05-18"),
          (43464,"2139-12-22",108114,"2316-12-24"),
          (47811,"2151-11-16",118925,"2346-07-31"),
          (52157,"2163-10-10",129736,"2376-03-06"),
          (56504,"2175-09-04",140548,"2405-10-12"),
          (60850,"2187-07-29",151359,"2435-05-19"),
          (65197,"2199-06-23",162171,"2464-12-24"),
          (69543,"2211-05-18",172982,"2494-07-31"),
          (73890,"2223-04-12",183793,"2524-03-07"),
          (78236,"2235-03-06",194605,"2553-10-13"),
          (82583,"2247-01-29",205416,"2583-05-20"),
          (86929,"2258-12-23",216228,"2612-12-26"),
          (91275,"2270-11-16",227039,"2642-08-02"),
          (95622,"2282-10-11",237850,"2672-03-08"),
          (99968,"2294-09-04",248662,"2701-10-15"),
          (104315,"2306-07-31",259473,"2731-05-22"),
          (108661,"2318-06-24",270285,"2760-12-27"),
          (113008,"2330-05-19",281096,"2790-08-03"),
          (117354,"2342-04-12",291907,"2820-03-09"),
          (121701,"2354-03-07",302719,"2849-10-15"),
          (126047,"2366-01-29",313530,"2879-05-22"),
          (130394,"2377-12-24",324342,"2908-12-28"),
          (134740,"2389-11-17",335153,"2938-08-04"),
          (139087,"2401-10-12",345964,"2968-03-10"),
          (143433,"2413-09-05",356776,"2997-10-16"),
          (147780,"2425-07-31",367587,"3027-05-24"),
          (152126,"2437-06-24",378399,"3056-12-29"),
          (156473,"2449-05-19",389210,"3086-08-05"),
          (160819,"2461-04-12",400021,"3116-03-12"),
          (165166,"2473-03-07",410833,"3145-10-18"),
          (169512,"2485-01-29",421644,"3175-05-25"),
          (173859,"2496-12-24",432456,"3204-12-30"),
          (178205,"2508-11-18",443267,"3234-08-06"),
          (182551,"2520-10-12",454078,"3264-03-12"),
          (186898,"2532-09-06",464890,"3293-10-18"),
          (191244,"2544-07-31",475701,"3323-05-26"),
          (195591,"2556-06-25",486513,"3352-12-31"),
          (199937,"2568-05-19",497324,"3382-08-07"),
          (204284,"2580-04-13",508135,"3412-03-14"),
          (208630,"2592-03-07",518947,"3441-10-20"),
          (212977,"2604-02-01",529758,"3471-05-27"),
          (217323,"2615-12-26",540570,"3501-01-02")]
n = leia_inteiro
data = datas[n]
escreva "Dias terrestres para Jupiter = {data.primeiro}"
escreva "Data terrestre para Jupiter: {data.segundo}"
escreva "Dias terrestres para Saturno = {data.terceiro}"
escreva "Data terrestre para Saturno: {data.quarto}"

3174 - Grupo de Trabalho do Noel

Descrição do Problema: 3174 - Grupo de Trabalho do Noel

3174 - Grupo de Trabalho do Noel
var bonecos, arquitetos, musicos, desenhistas := 0
n = leia_inteiro
para i de 1 ate n faca
  a = leia_textos(" ")
  grupo = a[2]
  horas = a[3].inteiro
  escolha grupo
    caso "bonecos"     => bonecos := bonecos + horas
    caso "arquitetos"  => arquitetos := arquitetos + horas
    caso "musicos"     => musicos := musicos + horas
    caso "desenhistas" => desenhistas := desenhistas + horas
    caso _             =>
  fim
fim
escreva bonecos div 8 + arquitetos div 4 + musicos div 6 + desenhistas div 12

3175 - Os Presentes Do Noel

Descrição do Problema: 3175 - Os Presentes Do Noel

3175 - Os Presentes Do Noel
n = leia_inteiro
g = leia_inteiros(" ")
h = g.ordene
     .divida_quando(_ <> _)
     .mapeie(_.tamanho)

presentes = h.zip(para i de 1 ate h.tamanho gere i fim)

soma = presentes.injete(0)((a, b) => a + b.primeiro * b.segundo)

escreva soma

3176 - Time de Duendes

Descrição do Problema: 3176 - Time de Duendes

3176 - Time de Duendes
tipo Duende
  nome: Texto
  idade: Inteiro
  saida = "{nome} {idade}"
fim

n = leia_inteiro
duendes = para i de 1 até n gere
  a = leia_textos(" ")
  Duende(a[1], a[2].inteiro)
fim

ordem = duendes.ordene((a, b) =>
  se a.idade <> b.idade então a.idade > b.idade senão a.nome < b.nome fim
)
times = n div 3
para time de 1 até times faça
  escreva "Time {time}"
  escreva ordem[time].saida
  escreva ordem[time + times].saida
  escreva ordem[time + 2 * times].saida
  escreva ""
fim

3182 - Planejamento de Evento

Descrição do Problema: 3182 - Planejamento de Evento

3182 - Planejamento de Evento
in = leia_inteiros(" ")
guests, budget, hotels =  in[1], in[2], in[3]

values =
  para i de 1 até hotels,
       price em [leia_inteiro],
       rooms em [leia_inteiros(" ").ordene( _ > _ ).cabeça]
         se rooms >= guests e price * guests <= budget gere
           price * guests
  fim

se values == [] então
  escreva "stay home"
senão
  escreva values.ordene.cabeça
fim

3188 - Phone List

Descrição do Problema: 3188 - Phone List

3188 - Phone List
prefixo(x, y: Texto) = x == y.pegue(x.tamanho)

t = leia_inteiro
para i de 1 até t faça
    n = leia_inteiro
    numeros = leia_textos(n).ordene
    pares = numeros.zip(numeros.cauda)
    consistente = pares.selecione(a => prefixo(a.primeiro, a.segundo)).tamanho == 0
    se consistente então escreva "YES" senão escreva "NO" fim
fim