Pular para conteúdo

1300

Faixa de problemas: 1300-1399

Total: 22 problemas

1300 - Horas e Minutos

Descrição do Problema: 1300 - Horas e Minutos

1300 - Horas e Minutos
1
2
3
4
5
6
7
8
9
var angulo := leia_inteiro
enquanto nao eof faça
  se angulo mod 6 == 0 entao
    escreva "Y"
  senao
    escreva "N"
  fim
  angulo := leia_inteiro
fim

1303 - Spurs Rocks

Descrição do Problema: 1303 - Spurs Rocks

1303 - Spurs Rocks
tipo Jogo
    time: Inteiro
    marcados, recebidos: Inteiro
fim

tipo Time
    time: Inteiro
    pontos: Inteiro
    marcados, recebidos: Inteiro
    media: Real = se recebidos == 0 então marcados senão marcados / recebidos fim
fim

ordem(a, b: Time) =
    se a.pontos <> b.pontos então           a.pontos   > b.pontos
    senãose a.media <> b.media então        a.media    > b.media
    senãose a.marcados <> b.marcados então  a.marcados > b.marcados
    senão                                   a.time     < b.time
    fim

var instancia := 0
var n := leia_inteiro
enquanto n > 0 faça
  var resultado := Lista(0, Jogo(0, 0, 0))

  para i de 1 até n * (n-1) div 2 faça
    entrada = leia_inteiros(" ")
    time1, pontos1, time2, pontos2 = entrada[1], entrada[2], entrada[3], entrada[4]
    resultado := Jogo(time1, pontos1, pontos2) :: Jogo(time2, pontos2, pontos1) ::resultado
  fim
  times = resultado.ordene(_.time).divida_quando(_.time <> _.time)
  b = para time em times gere
        t = time[1].time
        marcados = time.injete(0)(_ + _.marcados)
        recebidos = time.injete(0)(_ + _.recebidos)
        pontos = time.injete(0)((a, b) => a + (se b.marcados > b.recebidos então 2 senão 1 fim))
        Time(t, pontos, marcados, recebidos)
      fim
  instancia := instancia + 1
  se instancia > 1 então escreva "" fim
  escreva "Instancia {instancia}"
  escreva b.ordene(ordem(_, _)).mapeie(_.time).junte(" ")
  n := leia_inteiro
fim

1305 - Arredondamento por Valor de Corte

Descrição do Problema: 1305 - Arredondamento por Valor de Corte

1305 - Arredondamento por Valor de Corte
1
2
3
4
5
6
7
8
9
dec(r: Real) = r - r.inteiro

var a := leia_texto
enquanto não eof faça
  n = a.real
  c = leia_real
  escreva se dec(n) < dec(c) então n.inteiro senão (n+1).inteiro fim
  a := leia_texto
fim

1306 - Numerando Estradas

Descrição do Problema: 1306 - Numerando Estradas

1306 - Numerando Estradas
var casos := 0
var a := leia_inteiros(" ")
enquanto a <> [0, 0] faça
  casos := casos + 1
  sufixos = (a[1] - 1) div a[2]
  se sufixos <= 26 então
    escreva "Case {casos}: {sufixos}"
  senão
    escreva "Case {casos}: impossible"
  fim
  a := leia_inteiros(" ")
fim

1307 - Tudo o que Você Precisa é Amor

Descrição do Problema: 1307 - Tudo o que Você Precisa é Amor

1307 - Tudo o que Você Precisa é Amor
bin2dec(s: Texto): Inteiro =
  para i de 1 ate s.tamanho se s[i] == '1'
    gere (2 ^ (i - 1)).inteiro
  fim.injete(0)(_ + _)

mdc(a, b: Inteiro): Inteiro = se b == 0 
  então a 
  senão mdc(b, a mod b)
fim

t = leia_inteiro
para i de 1 ate t faça
  a, b = bin2dec(leia_texto.inverta)

  se mdc(a, b) > 1 
    então escreva "Pair #{i}: All you need is love!"
    senão escreva "Pair #{i}: Love is not all you need!"
  fim
fim

1308 - Guerreiros Etruscos Nunca Jogam Xadrez

Descrição do Problema: 1308 - Guerreiros Etruscos Nunca Jogam Xadrez

1308 - Guerreiros Etruscos Nunca Jogam Xadrez
1
2
3
4
5
6
n = leia_inteiro
para i de 1 até n faça
  x = leia_real
  a = ((raiz(1 + 8 * x) - 1) / 2).inteiro
  escreva a
fim

1309 - Formatação Monetária

Descrição do Problema: 1309 - Formatação Monetária

1309 - Formatação Monetária
var dolares := leia_inteiro
enquanto nao eof faca
  centavos = leia_inteiro
  s0 = dolares.texto
  s1 = se s0.tamanho > 3  entao s0.insira(s0.tamanho - 2 , ',') senao s0 fim
  s2 = se s1.tamanho > 7  entao s1.insira(s1.tamanho - 6 , ',') senao s1 fim
  s3 = se s2.tamanho > 11 entao s2.insira(s2.tamanho - 10, ',') senao s2 fim
  escreva "${s3}.{centavos formato "%02d"}"
  dolares := leia_inteiro
fim

1310 - Lucro

Descrição do Problema: 1310 - Lucro

1310 - Lucro
max(a, b: Inteiro) = se a > b então a senão b fim

lucro_máximo(n, custo_dia: Inteiro, receitas: Lista[Inteiro])
  var max_atual, max_total := 0
  para valor em receitas faça
    max_atual := max(0, max_atual) + valor - custo_dia
    se max_atual > max_total então max_total := max_atual fim
  fim
  retorne max_total
fim

var n:= leia_inteiro
enquanto n > 0 faça # EOF
  custo_dia = leia_inteiro
  receitas = leia_inteiros(n)
  resultado = lucro_máximo(n, custo_dia, receitas)
  escreva resultado
  n := leia_inteiro
fim

1318 - Bilhetes Falsos

Descrição do Problema: 1318 - Bilhetes Falsos

1318 - Bilhetes Falsos
1
2
3
4
5
6
var a := leia_inteiro
enquanto a > 0 faca
  t = leia_inteiros(" ").ordene.divida_quando((x, y) => x <> y)
  escreva t.selecione(_.tamanho > 1).tamanho
  a := leia_inteiro
fim

1323 - Feynman

Descrição do Problema: 1323 - Feynman

1323 - Feynman
1
2
3
4
5
6
7
8
9
var a = Lista(100, 1)
para i de 2 ate 100 faca
  a[i] := a[i-1] + i * i
fim
var n := leia_inteiro
enquanto n > 0 faca
  escreva a[n]
  n := leia_inteiro
fim

1329 - Cara ou Coroa

Descrição do Problema: 1329 - Cara ou Coroa

1329 - Cara ou Coroa
1
2
3
4
5
6
7
var n := leia_inteiro
enquanto n > 0 faça
  mary = leia_texto.selecione( _ == '0').tamanho
  john = n - mary
  escreva "Mary won {mary} times and John won {john} times"
  n := leia_inteiro
fim

1332 - Um-Dois-Três

Descrição do Problema: 1332 - Um-Dois-Três

1332 - Um-Dois-Três
n = leia_inteiro
para i de 1 até n faça
   a = leia_texto
   se a.tamanho==5 então
     escreva 3
   senãose [a[1]=='o', a[2]=='n', a[3]=='e'].selecione(a => a).tamanho >= 2 então
     escreva 1
   senão
     escreva 2
   fim
fim

1337 - Poker do Rei

Descrição do Problema: 1337 - Poker do Rei

1337 - Poker do Rei
var king := leia_inteiros(" ").ordene
enquanto king[1] > 0 faca
  a, b, c = king[1], king[2], king[3]

  resposta = se a == 13          entao "*"
        senaose a == c           entao "{a+1} {a+1} {a+1}"
        senaose a < b e b < c    entao "1 1 2"
        senaose b < c e c == 13  entao "1 {a+1} {a+1}"
        senaose b < c            entao "{a} {a} {c+1}"
        senaose a == 12          entao "1 1 1"
        senaose a + 1 < b        entao "{a+1} {b} {c}"
                                 senao "{b} {b} {a+2}"
  fim
  escreva resposta
  king := leia_inteiros(" ").ordene
fim

1338b -

Descrição do Problema: 1338b -

1338b -
n = leia_inteiro
a = leia_textos(n).mapeie(_.toLong)
var cnt := 0.toLong
var ai := 1
var i := 1
enquanto ai <= n faça
  var isSqFree := verdadeiro
  var j := 2
  ii = i
  enquanto j * j <= i faça
    se i mod (j * j) == 0 então
      isSqFree := falso
    fim
    se i mod j == 0 então
      i := i div j
    fim
    j := j + 1
  fim
  se isSqFree então
    cnt := cnt + 1
    se cnt == a[ai] então
      ai := ai + 1
      escreva ii
    fim
  fim
  i := ii + 1
fim

1340 - Eu Posso Adivinhar a Estrutura de Dados!

Descrição do Problema: 1340 - Eu Posso Adivinhar a Estrutura de Dados!

1340 - Eu Posso Adivinhar a Estrutura de Dados!
var n := leia_inteiro
enquanto nao eof faca
  var pilha, fila, prioridade := Lista(0, 0)
  var estrutura := Lista(4, 1)
  estrutura[4] := 0
  para i de 1 ate n faca
    a = leia_inteiros(" ")
    t, x = a[1], a[2]
    se t == 1 entao
      pilha      := x :: pilha
      fila       := x :: fila
      prioridade := x :: prioridade
    senao # t == 2
      fila := fila.inverta
      prioridade := prioridade.ordene.inverta
      se x <> fila.cabeca entao estrutura[1] := 0 fim
      se x <> pilha.cabeca entao estrutura[2] := 0 fim
      se x <> prioridade.cabeca entao estrutura[3] := 0 fim
      se pilha == [] ou x <> fila.cabeca e x <> pilha.cabeca e x <> prioridade.cabeca entao estrutura[4] := 1 fim
      pilha := pilha.cauda
      fila := fila.cauda.inverta
      prioridade := prioridade.cauda
    fim
  fim
  resp = estrutura[1] + estrutura[2] * 2 + estrutura[3] * 4 + estrutura[4] * 8
  escolha resp
    caso 1 => escreva "queue"
    caso 2 => escreva "stack"
    caso 4 => escreva "priority queue"
    caso s se s >= 8  => escreva "impossible"
    caso _ => escreva "not sure"
  fim
  n := leia_inteiro
fim

1366 - Jogo de Varetas

Descrição do Problema: 1366 - Jogo de Varetas

1366 - Jogo de Varetas
var n := leia_inteiro
enquanto n > 0 faça
    var pares := 0
    para i de 1 ate n faça
        v = leia_inteiros(" ")[2] div 2
        pares := pares + v
    fim
    retangulos = pares div 2
    escreva retangulos
    n := leia_inteiro
fim

1371 - Fechem as Portas!

Descrição do Problema: 1371 - Fechem as Portas!

1371 - Fechem as Portas!
1
2
3
4
5
6
7
8
var n := leia_inteiro
enquanto n > 0 faça
  portas = para i de 1 até raiz(n).inteiro
    gere i * i
  fim
  escreva portas.junte(" ")
  n := leia_inteiro
fim

1379 - Problema com Mediana e Média

Descrição do Problema: 1379 - Problema com Mediana e Média

1379 - Problema com Mediana e Média
1
2
3
4
5
var a := leia_inteiros(" ")
enquanto a <> [0, 0] faça
  escreva 2 * a[1] - a[2]
  a := leia_inteiros(" ")
fim

1383 - Sudoku

Descrição do Problema: 1383 - Sudoku

1383 - Sudoku
f(s: Lista[Lista[Inteiro]], x1, y1, x2, y2: Inteiro)
  linha = (para i de x1 até x2, j de y1 até y2 gere s[i][j] fim).ordene
  ordenada = para i de 1 até 9 gere i == linha[i] fim
  retorne ordenada.injete(verdadeiro)((a, b) => a e b)
fim

n = leia_inteiro
para i de 1 até n faça
  s = para j de 1 até 9 gere leia_inteiros(" ") fim
  linhas = para j de 1 até 9 gere f(s, j, 1, j, 9) fim +
           para j de 1 até 9 gere f(s, 1, j, 9, j) fim +
           para j em [1, 4, 7], k em [1, 4, 7] gere f(s, j, k, j+2, k+2) fim

  ok = linhas.injete(verdadeiro)((a, b) => a e b)
  escreva "Instancia {i}"
  escreva se ok então "SIM" senão "NAO" fim
  escreva ""
fim

1387 - Og

Descrição do Problema: 1387 - Og

1387 - Og
1
2
3
4
5
6
var entrada := leia_inteiros(" ")
enquanto entrada[1] > 0 faça
  l, r = entrada[1], entrada[2]
  escreva l + r
  entrada := leia_inteiros(" ")
fim

1393 - Lajotas Hexagonais

Descrição do Problema: 1393 - Lajotas Hexagonais

1393 - Lajotas Hexagonais
lajotas(a: Lista[Inteiro]): Lista[Inteiro] =
  se      a.tamanho < 2   entao lajotas([2, 1])
  senaose a.tamanho >= 40 entao a.inverta
  senao                         lajotas((a[1] + a[2]) :: a)
  fim

l = lajotas([])

var n := leia_inteiro
enquanto n > 0 faca
  escreva l[n]
  n := leia_inteiro
fim

1397 - Jogo do Maior

Descrição do Problema: 1397 - Jogo do Maior

1397 - Jogo do Maior
var n := leia_inteiro
enquanto n > 0 faca
  var a, b := 0
  para i de 1 ate n faca
    jogo = leia_texto
    se jogo.tamanho == 3 entao
      se jogo[1] > jogo[3] entao a := a + 1 fim
      se jogo[1] < jogo[3] entao b := b + 1 fim
    senaose jogo.tamanho == 4 entao
      se jogo[3] == ' ' entao
        a := a + 1
      senao
        b := b + 1
      fim
    fim
  fim
  escreva "{a} {b}"
  n := leia_inteiro
fim