Pular para conteúdo

1600

Faixa de problemas: 1600-1699

Total resolvido: 13 de 100 problemas

1607 - Avance as Letras

Descrição do Problema: 1607 - Avance as Letras

Categoria: Strings

1607 - Avance as Letras
t = leia_inteiro
para i de 1 até t faça
  lista = leia_textos(" ")
  var total := 0
  tm = lista[1].tamanho
  para j de 1 até tm faça
    tmp1, tmp2 = lista[1][j].inteiro, lista[2][j].inteiro
    se tmp2 > tmp1 então
      total := total + (tmp2 - tmp1)
    senãose tmp1 > tmp2 então
      total := total + (26 - (tmp1 - tmp2))
    fim
  fim
  escreva total
fim

1608 - Bolos da Maria

Descrição do Problema: 1608 - Bolos da Maria

Categoria: Paradigmas

1608 - Bolos da Maria
t = leia_inteiro
para i de 1 até t faça
    a = leia_inteiros(" ")
    dinheiro, ingredientes, bolos = a[1], a[2], a[3]
    precos = leia_inteiros(" ")
    var melhor := 0
    para j de 1 até bolos faça
        dados = leia_inteiros(" ")
        var q = dados.cabeça
        var custo := 0
        para k de 2 até 2*q passo 2 faça
            custo := custo + precos[dados[k] + 1] * dados[k+1]
        fim
        se custo > 0 então
            v = dinheiro div custo
            se v > melhor então
                melhor := v
            fim
        fim
    fim
    escreva melhor
fim

1608f -

Descrição do Problema: 1608f -

1608f -
def max(a, b: Inteiro) = se a >= b então a senão b fim

def calcular_custo(precos, dados: Lista[Inteiro]): Inteiro = escolha dados
    caso [] => 0
    caso a::as => precos[a + 1] * as.cabeça + calcular_custo(precos, as.cauda)
fim

def calcular_melhor(dinheiro: Inteiro, precos: Lista[Inteiro]) = 
    (melhor: Inteiro, bolo: Lista[Inteiro]) => max(melhor, dinheiro div calcular_custo(precos, bolo))

def melhor_bolo(dinheiro: Inteiro, precos: Lista[Inteiro], bolos: Lista[Lista[Inteiro]]) =
    bolos.injete(0)(calcular_melhor(dinheiro, precos))

t = leia_inteiro
para i de 1 até t faça
    a = leia_inteiros(" ")
    dinheiro, qtd_bolos = a[1], a[3]
    precos = leia_inteiros(" ")
    bolos = Lista(qtd_bolos, leia_inteiros(" ").cauda)
    escreva melhor_bolo(dinheiro, precos, bolos)
fim

1609 - Contando Carneirinhos

Descrição do Problema: 1609 - Contando Carneirinhos

Categoria: Ad-Hoc

1609 - Contando Carneirinhos
1
2
3
4
5
6
t = leia_inteiro
para i de 1 até t faça
  n = leia_inteiro
  l = leia_inteiros(" ")
  escreva l.ordene.divida_quando(_ <> _).tamanho
fim

1618 - Colisão

Descrição do Problema: 1618 - Colisão

Categoria: Ad-Hoc

1618 - Colisão
n = leia_inteiro
para i de 1 até n faça
  entrada = leia_inteiros(" ")
  a = entrada.pegue(2)
  c = entrada.descarte(4).pegue(2)
  r = entrada.descarte(8).pegue(2)

  resposta =
    se (a[1] <= r[1]) e (a[2] <= r[2]) e (c[1] >= r[1]) e (c[2] >= r[2])
    então 1 senão 0 fim
  escreva resposta
fim

1620 - Triangulação de Delaunay

Descrição do Problema: 1620 - Triangulação de Delaunay

Categoria: Matemática

1620 - Triangulação de Delaunay
def leia_notacao_cientifica()
    entrada = leia_texto +"e0"
    entrada.real * 10 ^ entrada.descarte_enquanto(_ <> 'e').cauda.inteiro
fim

var l := leia_notacao_cientifica
enquanto l > 0 faça
    x = 1 - 3 / l
    escreva x formato "%.6f"
    l := leia_notacao_cientifica
fim

1622 - Lâmpadas

Descrição do Problema: 1622 - Lâmpadas

Categoria: Ad-Hoc

1622 - Lâmpadas
var a := leia_inteiros(" ")
enquanto a <> [0, 0] faça
  n, q = a[1], a[2]
  L = leia_texto.lista.mapeie(c => escolha c caso 'x' => 0 caso _ => 1 fim)
  para i de 1 até q faça
    var l := L
    b = leia_inteiros(" ")
    var k, m := b[1], b[2]
    var p := 0
    m := m mod (2 * n)
    enquanto m > 0 faça
      l[p+1] := 1 - l[p+1]
      p := (p + k) mod n
      m := m - 1
    fim
    escreva l.mapeie(escolha _ caso 1 => 'o' caso _ => 'x' fim).junte("")
  fim
  a := leia_inteiros(" ")
fim

1630 - Estacas

Descrição do Problema: 1630 - Estacas

Categoria: Matemática

1630 - Estacas
mdc(x, y: Inteiro): Inteiro =
  se x > y então mdc(x mod y, y)
  senãose x == 0 então y
  senão mdc(y mod x, x) fim

var a := leia_texto
enquanto não eof faça
  b = a.divida(" ").mapeie(_.inteiro)
  x, y = b[1], b[2]
  m = mdc(x, y)
  escreva 2 * (x+y) div m
  a := leia_texto
fim

1632 - Variações

Descrição do Problema: 1632 - Variações

Categoria: Strings

1632 - Variações
1
2
3
4
5
6
7
8
t = leia_inteiro
para i de 1 até t faça
  s = leia_texto.minusculo
  m = s.lista
       .mapeie(c => se "aeios".contém(c) então 3 senão 2 fim)
       .injete(1)(_ * _)
  escreva m
fim

1641 - Restaurante e Pizzaria do Alfredo

Descrição do Problema: 1641 - Restaurante e Pizzaria do Alfredo

Categoria: Matemática

1641 - Restaurante e Pizzaria do Alfredo
var pizza := 0

var entrada := leia_texto
enquanto entrada <> "0" faça
  dados = entrada.divida(" ").mapeie(_.inteiro)
  r, w, l = dados[1], dados[2], dados[3]
  pizza := pizza + 1
  se 4 * r*r >= w*w + l*l então
    escreva "Pizza {pizza} fits on the table."
  senão
    escreva "Pizza {pizza} does not fit on the table."
  fim
  entrada := leia_texto
fim

1647 - Um Jogo com Bolas de Gude

Descrição do Problema: 1647 - Um Jogo com Bolas de Gude

Categoria: Matemática

1647 - Um Jogo com Bolas de Gude
var flag := verdadeiro
enquanto flag faça
    n = leia_inteiro
    se n == 0 então
        flag := falso
    senão
        var valores := leia_texto.divida(" ").mapeie(x => BigInt(x))
        para i de n-1 até 1 passo -1,
             j de n até i+1 passo -1 faça
                valores[i] := valores[i] + valores[j]
        fim
        escreva valores.injete((a, b: BigInt) => a + b)  
    fim
fim

1650 - Pintura Preto e Branco

Descrição do Problema: 1650 - Pintura Preto e Branco

Categoria: Matemática

1650 - Pintura Preto e Branco
1
2
3
4
5
6
var entrada := leia_inteiros(" ")
enquanto entrada[1] > 0 faça
  n, m, c = entrada[1], entrada[2], entrada[3]
  escreva ((n - 7) * (m - 7) + c) div 2
  entrada := leia_inteiros(" ")
fim

1690 - Soma de Sobconjuntos

Descrição do Problema: 1690 - Soma de Sobconjuntos

Categoria: Paradigmas

1690 - Soma de Sobconjuntos
t = leia_inteiro
para i de 1 até t faça
  n = leia_inteiro
  var num := leia_textos(" ").mapeie(a => BigInt(a)).ordene.mutável
  var soma, i := BigInt(1), 1
  enquanto i <= n e soma >= num[i] faça
    soma := soma + num[i]
    i := i + 1
  fim
  escreva soma
fim