1300
Faixa de problemas: 1300-1399
Total resolvido: 24 de 100 problemas
Problemas não resolvidos (76)
1301 , 1302 , 1311 , 1312 , 1313 , 1314 , 1315 , 1316 , 1317 , 1319 , 1320 , 1322 , 1324 , 1325 , 1326 , 1327 , 1328 , 1330 , 1331 , 1333 , 1334 , 1335 , 1336 , 1338 , 1339 , 1341 , 1342 , 1343 , 1344 , 1345 , 1346 , 1347 , 1348 , 1349 , 1350 , 1351 , 1352 , 1353 , 1354 , 1355 , 1356 , 1357 , 1358 , 1359 , 1360 , 1361 , 1362 , 1363 , 1364 , 1365 , 1367 , 1368 , 1369 , 1370 , 1372 , 1373 , 1374 , 1375 , 1376 , 1377 , 1378 , 1380 , 1381 , 1382 , 1384 , 1385 , 1386 , 1388 , 1389 , 1390 , 1391 , 1392 , 1394 , 1395 , 1396 , 1399
1300 - Horas e Minutos
Descrição do Problema: 1300 - Horas e Minutos
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2012
1300 - Horas e Minutos var angulo := leia_inteiro
enquanto não eof faça
se angulo mod 6 == 0 então
escreva "Y"
senão
escreva "N"
fim
angulo := leia_inteiro
fim
1303 - Spurs Rocks
Descrição do Problema: 1303 - Spurs Rocks
Categoria: Estruturas e Bibliotecas
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
Descrição do Problema: 1304 - Velocidade Média
Categoria: Matemática
1304 - Velocidade Média var distance := 0.0
var last_time := 0
var speed := 0.0
var parts := leia_textos ( " " )
enquanto não eof faça
hora = parts [ 1 ] . divida ( ":" ) . mapeie ( _ . inteiro )
h , m , s = hora [ 1 ], hora [ 2 ], hora [ 3 ]
current_time = h * 3600 + m * 60 + s
distance := distance + ( current_time - last_time ) * speed / 3600
se parts . tamanho == 2 então
speed := parts [ 2 ] . real
last_time := current_time
senão
escreva " { parts [ 1 ] } { distance formato "%.2f" } km"
last_time := current_time
fim
parts := leia_textos ( " " )
fim
1305 - Arredondamento por Valor de Corte
Descrição do Problema: 1305 - Arredondamento por Valor de Corte
Categoria: Strings
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
Categoria: Matemática
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
Categoria: Matemática
1307 - Tudo o que Você Precisa é Amor bin2dec ( s : Texto ): Inteiro =
para i de 1 até 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 até 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
Categoria: Matemática
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
Categoria: Matemática
1309 - Formatação Monetária var dolares := leia_inteiro
enquanto não eof faça
centavos = leia_inteiro
s0 = dolares . texto
s1 = se s0 . tamanho > 3 então s0 . insira ( s0 . tamanho - 2 , ',' ) senão s0 fim
s2 = se s1 . tamanho > 7 então s1 . insira ( s1 . tamanho - 6 , ',' ) senão s1 fim
s3 = se s2 . tamanho > 11 então s2 . insira ( s2 . tamanho - 10 , ',' ) senão s2 fim
escreva "$ { s3 } . { centavos formato "%02d" } "
dolares := leia_inteiro
fim
1310 - Lucro
Descrição do Problema: 1310 - Lucro
Categoria: Paradigmas
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
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2002
1318 - Bilhetes Falsos var a := leia_inteiro
enquanto a > 0 faça
t = leia_inteiros ( " " ) . ordene . divida_quando (( x , y ) => x <> y )
escreva t . selecione ( _ . tamanho > 1 ) . tamanho
a := leia_inteiro
fim
1321 - Jollo
Descrição do Problema: 1321 - Jollo
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2010
1321 - Jollo var usadas := leia_inteiros ( " " )
enquanto usadas <> [ 0 , 0 , 0 , 0 , 0 ] faça
var princesa = usadas . pegue ( 3 ) . ordene
var resposta := -1
var z := 1
enquanto z <= 52 e resposta == -1 faça
se não usadas . contém ( z ) então
principe = ( z :: usadas . descarte ( 3 )) . ordene
var vitorias :=
( se principe [ 3 ] > princesa [ 1 ] então 1 senão 0 fim ) +
( se principe [ 2 ] > princesa [ 3 ] então 1 senão 0 fim ) +
( se principe [ 1 ] > princesa [ 2 ] então 1 senão 0 fim )
se vitorias >= 2 então
resposta := z
fim
fim
z := z + 1
fim
escreva resposta
usadas := leia_inteiros ( " " )
fim
1323 - Feynman
Descrição do Problema: 1323 - Feynman
Categoria: Matemática · Maratona SBC (2ª fase) 2008
1323 - Feynman var a = Lista ( 100 , 1 )
para i de 2 até 100 faça
a [ i ] := a [ i -1 ] + i * i
fim
var n := leia_inteiro
enquanto n > 0 faça
escreva a [ n ]
n := leia_inteiro
fim
1329 - Cara ou Coroa
Descrição do Problema: 1329 - Cara ou Coroa
Categoria: Ad-Hoc · Maratona SBC (1ª fase) 2004
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
Categoria: Strings
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
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2011
1337 - Poker do Rei var king := leia_inteiros ( " " ) . ordene
enquanto king [ 1 ] > 0 faça
a , b , c = king [ 1 ], king [ 2 ], king [ 3 ]
resposta = se a == 13 então "*"
senãose a == c então " { a +1 } { a +1 } { a +1 } "
senãose a < b e b < c então "1 1 2"
senãose b < c e c == 13 então "1 { a +1 } { a +1 } "
senãose b < c então " { a } { a } { c +1 } "
senãose a == 12 então "1 1 1"
senãose a + 1 < b então " { a +1 } { b } { c } "
senão " { b } { b } { a +2 } "
fim
escreva resposta
king := leia_inteiros ( " " ) . ordene
fim
1340 - Eu Posso Adivinhar a Estrutura de Dados!
Descrição do Problema: 1340 - Eu Posso Adivinhar a Estrutura de Dados!
Categoria: Estruturas e Bibliotecas
1340 - Eu Posso Adivinhar a Estrutura de Dados! var n := leia_inteiro
enquanto não eof faça
var pilha , fila , prioridade := Lista ( 0 , 0 )
var estrutura := Lista ( 4 , 1 )
estrutura [ 4 ] := 0
para i de 1 até n faça
a = leia_inteiros ( " " )
t , x = a [ 1 ], a [ 2 ]
se t == 1 então
pilha := x :: pilha
fila := x :: fila
prioridade := x :: prioridade
senão # t == 2
fila := fila . inverta
prioridade := prioridade . ordene . inverta
se x <> fila . cabeca então estrutura [ 1 ] := 0 fim
se x <> pilha . cabeca então estrutura [ 2 ] := 0 fim
se x <> prioridade . cabeca então estrutura [ 3 ] := 0 fim
se pilha == [] ou x <> fila . cabeca e x <> pilha . cabeca e x <> prioridade . cabeca então 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
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2007
1366 - Jogo de Varetas var n := leia_inteiro
enquanto n > 0 faça
var pares := 0
para i de 1 até 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!
Categoria: Matemática · Maratona SBC (1ª fase) 2006
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
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2010
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
Categoria: Ad-Hoc
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
Categoria: Ad-Hoc · Maratona SBC (2ª fase) 2007
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
Categoria: Matemática · Maratona SBC (2ª fase) 2009
1393 - Lajotas Hexagonais lajotas ( a : Lista [ Inteiro ]): Lista [ Inteiro ] =
se a . tamanho < 2 então lajotas ([ 2 , 1 ])
senãose a . tamanho >= 40 então a . inverta
senão lajotas (( a [ 1 ] + a [ 2 ]) :: a )
fim
l = lajotas ([])
var n := leia_inteiro
enquanto n > 0 faça
escreva l [ n ]
n := leia_inteiro
fim
1397 - Jogo do Maior
Descrição do Problema: 1397 - Jogo do Maior
Categoria: Ad-Hoc
1397 - Jogo do Maior var n := leia_inteiro
enquanto n > 0 faça
var a , b := 0
para i de 1 até n faça
jogo = leia_texto
se jogo . tamanho == 3 então
se jogo [ 1 ] > jogo [ 3 ] então a := a + 1 fim
se jogo [ 1 ] < jogo [ 3 ] então b := b + 1 fim
senãose jogo . tamanho == 4 então
se jogo [ 3 ] == ' ' então
a := a + 1
senão
b := b + 1
fim
fim
fim
escreva " { a } { b } "
n := leia_inteiro
fim
1398 - Oceano Profundo! Faça-o Raso!!
Descrição do Problema: 1398 - Oceano Profundo! Faça-o Raso!!
Categoria: Matemática
1398 - Oceano Profundo! Faça-o Raso!! primo = 131071
var entrada := leia_texto
enquanto não eof faça
enquanto entrada . ultimo <> '#' faça
entrada := entrada + leia_texto
fim
entrada := entrada . pegue ( entrada . tamanho - 1 )
var num := 0
para d em entrada faça
num := ( 2 * num + ( d - '0' )) mod primo
fim
se num == 0
então escreva "YES"
senão escreva "NO"
fim
entrada := leia_texto
fim