3000
Faixa de problemas: 3000-3099
Total resolvido: 34 de 100 problemas
Problemas não resolvidos (66)
3000 , 3001 , 3002 , 3003 , 3006 , 3007 , 3008 , 3009 , 3010 , 3012 , 3013 , 3014 , 3015 , 3016 , 3017 , 3018 , 3019 , 3020 , 3021 , 3022 , 3023 , 3025 , 3026 , 3027 , 3028 , 3029 , 3030 , 3031 , 3032 , 3033 , 3035 , 3041 , 3044 , 3045 , 3051 , 3052 , 3054 , 3057 , 3061 , 3062 , 3063 , 3064 , 3066 , 3067 , 3069 , 3070 , 3071 , 3072 , 3073 , 3074 , 3075 , 3077 , 3078 , 3079 , 3080 , 3081 , 3082 , 3083 , 3085 , 3086 , 3087 , 3095 , 3096 , 3097 , 3098 , 3099
3004 - Envelopes
Descrição do Problema: 3004 - Envelopes
Categoria: Matemática
3004 - Envelopes n = leia_inteiro
para i de 1 até n faça
a = leia_inteiros ( " " )
envelope1 = a . pegue ( 2 ) . ordene
envelope2 = a . descarte ( 2 ) . ordene
pode_colocar = envelope1 [ 1 ] < envelope2 [ 1 ] e envelope1 [ 2 ] < envelope2 [ 2 ]
se pode_colocar então
escreva "S"
senão
escreva "N"
fim
fim
3005 - Pilhas de Paralelepípedos
Descrição do Problema: 3005 - Pilhas de Paralelepípedos
Categoria: Ad-Hoc
3005 - Pilhas de Paralelepípedos n = leia_inteiro
para i de 1 até n faça
a = leia_inteiros ( " " )
x = a . pegue ( 3 ) . ordene
y = a . descarte ( 3 ) . ordene
resposta =
( se y [ 3 ] > x [ 2 ] e y [ 2 ] > x [ 1 ] então 1 senão 0 fim ) +
( se x [ 3 ] > y [ 2 ] e x [ 2 ] > y [ 1 ] então 2 senão 0 fim )
escreva resposta
fim
3011 - Quebra-Cabeça Algébrico
Descrição do Problema: 3011 - Quebra-Cabeça Algébrico
Categoria: Ad-Hoc
3011 - Quebra-Cabeça Algébrico def op ( simbolo : Caractere ) = escolha simbolo
caso '+' => ( a , b : Inteiro ) => a + b
caso _ => ( a , b : Inteiro ) => a - b
fim
s = "123456789"
expr = para i de 1 até 6 , a em [ s . pegue ( i ) . inteiro ],
j de i + 1 até 7 , b em [ s . descarte ( i ) . pegue ( j - i ) . inteiro ],
k de j + 1 até 8 , c em [ s . descarte ( j ) . pegue ( k - j ) . inteiro ], d em [ s . descarte ( k ) . inteiro ],
s1 em "+-" , op1 em [ op ( s1 )],
s2 em "+-" , op2 em [ op ( s2 )],
s3 em "+-" , op3 em [ op ( s3 )],
valor em [ op3 ( op2 ( op1 ( a , b ), c ), d )], expressao em [ " { a }{ s1 }{ b }{ s2 }{ c }{ s3 }{ d } " ]
gere
( valor , expressao )
fim . toMap
def min ( a , b : Inteiro ) = se a <= b então a senão b fim
limite = 100000
var m := leia_inteiro
enquanto m > 0 faça
n = min ( m , limite )
m := m - limite
resp = para i de 1 até n gere
d = leia_inteiro
ex = expr ( d )
" { ex } = { d } "
fim
escreva resp . junte ( "\n" )
fim
3024 - Mountain Ranges
Descrição do Problema: 3024 - Mountain Ranges
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2019
3024 - Mountain Ranges in = leia_inteiros ( " " )
n , x = in [ 1 ], in [ 2 ]
l = leia_inteiros ( " " )
var r , p := 1
para i de 2 até n faça
se l [ i ] - l [ i -1 ] <= x então
p := p + 1
se p > r então r := p fim
senão
p := 1
fim
fim
escreva r
3034 - O Caso Douglas
Descrição do Problema: 3034 - O Caso Douglas
Categoria: Ad-Hoc
3034 - O Caso Douglas primo ( a : Inteiro )
var resposta = verdadeiro
para i de 3 até raiz ( a ) . inteiro passo 2 faça
se a mod i == 0 então
resposta := falso
fim
fim
retorne resposta
fim
n = leia_inteiro
para i de 1 até n faça
num = leia_inteiro + 1
se num mod 2 == 1 e num mod 7 == 0 e primo ( num + 2 ) então
escreva "Yes"
senão
escreva "No"
fim
fim
3036 - Cor da Camisa
Descrição do Problema: 3036 - Cor da Camisa
Categoria: Matemática
3036 - Cor da Camisa v = leia_inteiro
c = 300000000
λ = ( 700.0 * ( c - v ) / raiz ( 1.0 * c * c - 1.0 * v * v )) . arredonde
cor = se λ < 400 ou λ >= 750 então "invisivel"
senãose λ < 425 então "violeta"
senãose λ < 445 então "anil"
senãose λ < 500 então "azul"
senãose λ < 575 então "verde"
senãose λ < 585 então "amarelo"
senãose λ < 620 então "laranja"
senãose λ < 750 então "vermelho"
fim
escreva cor
3037 - Jogando Dardos Por Distância
Descrição do Problema: 3037 - Jogando Dardos Por Distância
Categoria: Iniciante
3037 - Jogando Dardos Por Distância n = leia_inteiro
pontos () = para j de 1 até 3 gere
leia_inteiros ( " " ) . injete ( 1 )( _ * _ )
fim . injete ( 0 )( _ + _ )
para i de 1 até n faça
joao , maria = pontos
escreva se joao > maria então "JOAO" senão "MARIA" fim
fim
3038 - Carta de Natal Criptografada
Descrição do Problema: 3038 - Carta de Natal Criptografada
Categoria: Strings
3038 - Carta de Natal Criptografada var linha := leia_texto
enquanto não eof faça
saida = para c em linha . lista gere
escolha c
caso c se não "@&!*#" . contém ( c ) => c
caso '&' => 'e'
caso '!' => 'i'
caso '*' => 'o'
caso '#' => 'u'
caso _ => 'a'
fim
fim
escreva saida . junte ( "" )
linha := leia_texto
fim
3039 - Brinquedos do Papai Noel
Descrição do Problema: 3039 - Brinquedos do Papai Noel
Categoria: Iniciante
3039 - Brinquedos do Papai Noel n = leia_inteiro
var m := 0
para i de 1 até n faça
a = leia_texto . ultimo
se a == 'M' então m := m + 1 fim
fim
escreva " { m } carrinhos"
escreva " { n - m } bonecas"
3040 - A Árvore de Natal
Descrição do Problema: 3040 - A Árvore de Natal
Categoria: Iniciante
3040 - A Árvore de Natal n = leia_inteiro
para i de 1 até n faça
a = leia_inteiros ( " " )
h , d , g = a [ 1 ], a [ 2 ], a [ 3 ]
se h >= 200 e h <= 300 e d >= 50 e g >= 150 então
escreva "Sim"
senão
escreva "Nao"
fim
fim
3042 - Desviando de Árvores de Natal
Descrição do Problema: 3042 - Desviando de Árvores de Natal
Categoria: Paradigmas
3042 - Desviando de Árvores de Natal var m := leia_inteiro
enquanto m > 0 faça
var p := 2
var cont := 0
para i de 1 até m faça
linha = leia_texto
escolha linha
caso "0 1 1" se p <> 1 => cont := cont + abs ( p - 1 ) p := 1
caso "1 0 1" se p <> 2 => cont := cont + abs ( p - 2 ) p := 2
caso "1 1 0" se p <> 3 => cont := cont + abs ( p - 3 ) p := 3
caso _ =>
fim
fim
escreva cont
m := leia_inteiro
fim
3043 - Festa Junina
Descrição do Problema: 3043 - Festa Junina
Categoria: Grafos · OBI 2003
3043 - Festa Junina flat ( a : Lista [ Lista [ Lista [ Inteiro ]]]) = para v em a , y em v gere y fim
var n , t := leia_inteiro , 0
enquanto n > 0 faça
var valores := [ para i de 1 até n gere i fim ]
para i de 1 até n faça
nums = leia_inteiros ( " " )
valores := flat ( valores . mapeie ( v =>
se v - nums == v ou v - [ i ] == v então [ v ]
senão [ v - [ i ], v - nums ]
fim ))
fim
t := t + 1
r = valores . mapeie ( _ . tamanho ) . ordene . ultimo
escreva "Teste { t } "
escreva r
escreva ""
n := leia_inteiro
fim
3046 - Dominó
Descrição do Problema: 3046 - Dominó
Categoria: Iniciante · OBI 2019
3046 - Dominó n = leia_inteiro
r = ( n + 1 ) * ( n + 2 ) div 2
escreva r
3047 - A idade de Dona Mônica
Descrição do Problema: 3047 - A idade de Dona Mônica
Categoria: Iniciante · OBI 2019
3047 - A idade de Dona Mônica m , a , b = leia_inteiro
c = m - ( a + b )
escreva [ a , b , c ] . ordene . último
3048 - Sequência Secreta
Descrição do Problema: 3048 - Sequência Secreta
Categoria: Ad-Hoc · OBI 2019
3048 - Sequência Secreta n = leia_inteiro
var a , s := 0
para i de 1 até n faça
v = leia_inteiro
se v <> a então
a := v
s := s + 1
fim
fim
escreva s
3049 - Nota Cortada
Descrição do Problema: 3049 - Nota Cortada
Categoria: Matemática · OBI 2019
3049 - Nota Cortada b , t = leia_inteiro
soma = b + t
valor = se soma > 160 então 1 senãose soma < 160 então 2 senão 0 fim
escreva valor
3050 - Distância Entre Amigos
Descrição do Problema: 3050 - Distância Entre Amigos
Categoria: Ad-Hoc · OBI 2019
3050 - Distância Entre Amigos n = leia_inteiro
a = leia_inteiros ( " " )
d ( x , y : Inteiro ) = y - x + a [ x ] + a [ y ]
var x , y , j := 1 , 2 , 1
var dxy := d ( x , y )
para i de 3 até n faça
se a [ i -1 ] >= a [ x ] + i - x então j := i - 1 fim
se d ( j , i ) >= dxy então
x , y := j , i
dxy := d ( x , y )
fim
fim
escreva dxy
3053 - Jogo Dos Copos
Descrição do Problema: 3053 - Jogo Dos Copos
Categoria: Iniciante · OBI 2019
3053 - Jogo Dos Copos n = leia_inteiro
z = leia_texto
var a , b , c := z == "A" , z == "B" , z == "C"
para i de 1 até n faça
x = leia_inteiro
escolha x
caso 1 => a , b := b , a
caso 2 => b , c := c , b
caso _ => a , c := c , a
fim
fim
se a então escreva "A"
senãose b então escreva "B"
senão escreva "C"
fim
3055 - Nota Esquecida
Descrição do Problema: 3055 - Nota Esquecida
Categoria: Iniciante · OBI 2019
3055 - Nota Esquecida a , m = leia_inteiro
b = m * 2 - a
escreva b
3056 - Ponto do Meio
Descrição do Problema: 3056 - Ponto do Meio
Categoria: Ad-Hoc · OBI 2019
3056 - Ponto do Meio n = leia_inteiro
# pontos = (2 ^ n + 1) ^ 2
# lado = Lista(n, 1).injete(BigInt(1))((x, _) => 2 * x) + 1
var lado := BigInt ( 2 )
para i de 1 até n faça
lado := 2 * lado - 1
fim
escreva lado * lado
3058 - Supermercado
Descrição do Problema: 3058 - Supermercado
Categoria: Ad-Hoc · OBI 2019
3058 - Supermercado n = leia_inteiro
var menor := 10000000.0
para i de 1 até n faça
a = leia_reais ( " " )
p , g = a [ 1 ], a [ 2 ]
valor = p * 1000 / g
se valor < menor então menor := valor fim
fim
escreva menor formato "%.2f"
3059 - Pares de Números
Descrição do Problema: 3059 - Pares de Números
Categoria: Ad-Hoc · OBI 2019
3059 - Pares de Números pares ( xs : Lista [ Inteiro ], cont , i , f : Inteiro ): Inteiro =
se xs <> [] então
yi , yf = i - xs . cabeça , f - xs . cabeça
ys = xs . cauda
c = ys . descarte_enquanto ( x => x < yi )
. pegue_enquanto ( x => x <= yf )
. tamanho
pares ( ys , cont + c , i , f )
senão
cont
fim
a = leia_inteiros ( " " )
nums = leia_inteiros ( " " ) . ordene
n , i , f = a [ 1 ], a [ 2 ], a [ 3 ]
escreva pares ( nums , 0 , i , f )
3060 - Parcelamento Sem Juros
Descrição do Problema: 3060 - Parcelamento Sem Juros
Categoria: Ad-Hoc · OBI 2019
3060 - Parcelamento Sem Juros n , p = leia_inteiro
parcela = n div p
resto = n mod p
para i de 1 até resto faça escreva parcela + 1 fim
para i de resto + 1 até p faça escreva parcela fim
3065 - Calculando
Descrição do Problema: 3065 - Calculando
Categoria: Iniciante · OBI 2001
3065 - Calculando var m := leia_inteiro
var teste := 0
enquanto m > 0 faça
x = leia_textos ( "+" ) . mapeie ( _ . divida ( "-" ) . mapeie ( _ . inteiro ))
y = x . mapeie ( a => a . cauda . injete ( a . cabeca )( _ - _ )) . injete ( 0 )( _ + _ )
teste := teste + 1
escreva "Teste { teste } "
escreva y
escreva ""
m := leia_inteiro
fim
3068 - Meteoros
Descrição do Problema: 3068 - Meteoros
Categoria: Geometria Computacional · OBI 2001
3068 - Meteoros var linha := leia_inteiros ( " " )
var t := 0
enquanto linha <> [ 0 , 0 , 0 , 0 ] faça
t := t + 1
x1 , y1 , x2 , y2 = linha [ 1 ], linha [ 2 ], linha [ 3 ], linha [ 4 ]
n = leia_inteiro
var cont := 0
para i de 1 até n faça
a = leia_inteiros ( " " )
x , y = a [ 1 ], a [ 2 ]
se x1 <= x e x <= x2 e y1 >= y e y >= y2 então
cont := cont + 1
fim
fim
escreva "Teste { t } "
escreva cont
linha := leia_inteiros ( " " )
fim
3076 - Exercício de História
Descrição do Problema: 3076 - Exercício de História
Categoria: Iniciante
3076 - Exercício de História var n := leia_inteiro
enquanto n > 0 faça
seculo = ( n + 99 ) div 100
escreva seculo
n := leia_inteiro
fim
3084 - Relógio Antigo
Descrição do Problema: 3084 - Relógio Antigo
Categoria: Iniciante
3084 - Relógio Antigo var a := leia_inteiros ( " " )
enquanto não eof faça
hora = a [ 1 ] div 30
minuto = a [ 2 ] div 6
escreva " { hora formato "%02d" } : { minuto formato "%02d" } "
a := leia_inteiros ( " " )
fim
3088 - Correção de Texto
Descrição do Problema: 3088 - Correção de Texto
Categoria: Strings
3088 - Correção de Texto corrija ( s : Texto ): Texto =
se s . tamanho < 2 então s
senão
se s [ 1 ] == ' ' e ( s [ 2 ] == ',' ou s [ 2 ] == '.' ) então
" { s [ 2 ] }{ corrija ( s . descarte ( 2 )) } "
senão
" { s [ 1 ] }{ corrija ( s . descarte ( 1 )) } "
fim
fim
var a := leia_texto
enquanto a <> "" faça
escreva corrija ( a )
a := leia_texto
fim
3089 - Presentes de Natal
Descrição do Problema: 3089 - Presentes de Natal
Categoria: Iniciante
3089 - Presentes de Natal var n := leia_inteiro
enquanto n > 0 faça
x = leia_inteiros ( " " )
a = x . ordene
var menor , maior := a [ n ] + a [ n +1 ]
para i de 1 até n faça
b = a [ i ] + a [ 2 * n - i + 1 ]
se b < menor então menor := b
senãose b > maior então maior := b
fim
fim
escreva " { maior } { menor } "
n := leia_inteiro
fim
3090 - Campo de Batalha
Descrição do Problema: 3090 - Campo de Batalha
Categoria: Ad-Hoc
3090 - Campo de Batalha a = leia_inteiros ( " " )
n , m , s = a [ 1 ], a [ 2 ], a [ 3 ]
var ex1 , ex2 := 0
para i de 1 até s faça
b = leia_inteiros ( " " )
x , y , h = b [ 1 ], b [ 2 ], b [ 3 ]
se y / m > x / n então
ex1 := ex1 + h
senão
ex2 := ex2 + h
fim
fim
escreva " { ex1 } { ex2 } "
3091 - Resto 1.0
Descrição do Problema: 3091 - Resto 1.0
Categoria: Iniciante
3091 - Resto 1.0 a , b = leia_inteiro
escreva a mod b
3092 - Truco da Galera 2.0
Descrição do Problema: 3092 - Truco da Galera 2.0
Categoria: Ad-Hoc
3092 - Truco da Galera 2.0 n = leia_inteiro
para i de 1 até n faça
s = leia_texto
var q , j , k , a := 0
para c em s faça
escolha c
caso 'Q' => q := q + 1
caso 'J' se j < q => j := j + 1
caso 'K' se k < j => k := k + 1
caso 'A' se a < k => a := a + 1
caso _ =>
fim
fim
se a > 0 então
escreva "Agora vai"
senão
escreva "Agora apertou sem abracar"
fim
fim
3093 - Truco da Galera 1.0
Descrição do Problema: 3093 - Truco da Galera 1.0
Categoria: Ad-Hoc
3093 - Truco da Galera 1.0 n = leia_inteiro
para i de 1 até n faça
s = leia_texto
t = s . tamanho - 4
se ( s - "QJKA" ) . tamanho == t então
escreva "Aaah muleke"
senão
escreva "Ooo raca viu"
fim
fim
3094 - Truco da Galera 3.0
Descrição do Problema: 3094 - Truco da Galera 3.0
Categoria: Ad-Hoc
3094 - Truco da Galera 3.0 n = leia_inteiro
para i de 1 até n faça
s = leia_texto
var sete , q , j , k , a := 0
para c em s faça
escolha c
caso '7' => sete := sete + 1
caso 'Q' se q < sete => q := q + 1
caso 'J' se j < q => j := j + 1
caso 'K' se k < j => k := k + 1
caso 'A' se a < k => a := a + 1
caso _ =>
fim
fim
escreva s . tamanho - a * 5
fim