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 |
---|
| 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 |
---|
| 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 |
---|
| 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
|
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 |
---|
| 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 |
---|
| 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 |
---|
| 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! |
---|
| 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
|
Descrição do Problema: 1379 - Problema com Mediana e Média
1379 - Problema com Mediana e Média |
---|
| 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 |
---|
| 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
|