AtCoder Regular Contest D - Grid Coloring Difficulty: 855
Dieses Thema, Simulation
Ich denke nicht, dass der Inhalt schwierig ist, aber es ist ein Problem, dessen Implementierung einige Zeit in Anspruch zu nehmen scheint.
1 2 2 3 3
4 4 4 4 3
5 5 5 5 5
Es ist in Ordnung, wenn Sie links und rechts in der Reihenfolge von oben mit dem angegebenen Zahlenwert füllen. Ruby Array
ruby.rb
h, w = gets.split.map(&:to_i)
_ = gets.to_i
a = gets.split.map(&:to_i)
m = Array.new(h){Array.new(w, 0)}
y, x, lr = 0, 0, 1
a.each_with_index do |n, v|
n.times do
m[y][x] = v + 1
x += lr
if x == w
y += 1
x = w - 1
lr = -1
elsif x < 0
y += 1
x = 0
lr = 1
end
end
end
h.times do |i|
puts m[i].join(' ')
end
join.rb
puts m[i].join(' ')
puts m[i] * ' '
Wie ich kürzlich erfahren habe, kann "join" auch wie oben geschrieben werden. Ruby Class
ruby.rb
class MASS
def initialize(h, w)
@h = h
@w = w
@m = Array.new(@h){Array.new(@w, 0)}
@x = 0
@y = 0
@LR = 1
end
def draw(v, n)
n.times do
@m[@y][@x] = v + 1
@x += @LR
if @x == @w
@y += 1
@x = @w - 1
@LR = -1
elsif @x < 0
@y += 1
@x = 0
@LR = 1
end
end
end
def out
@h.times do |i|
puts @m[i].join(' ')
end
end
end
h, w = gets.split.map(&:to_i)
_ = gets.to_i
a = gets.split.map(&:to_i)
m = MASS.new(h, w)
a.each_with_index do |v, i|
m.draw(i, v)
end
m.out
In diesem Problem ist es nicht sehr effektiv, aber ich habe versucht, "Klasse" zum Lernen zu verwenden. Die Codelänge hat sich fast verdoppelt, aber die Ausführungszeit scheint sich nicht zu ändern. Python
python.py
from sys import stdin
def main():
input = stdin.readline
h, w = map(int, input().split())
_ = int(input())
a = list(map(int, input().split()))
m = [[0] * w for _ in range(h)]
x, y, LR, v = 0, 0, 1, 0
for n in a:
v += 1
for _ in range(n):
m[y][x] = str(v)
x += LR
if x == w:
y += 1
x = w - 1
LR = -1
elif x < 0:
y += 1
x = 0
LR = 1
for i in range(h):
print(" ".join(m[i]))
main()
Ist der Grund, warum *** Python *** eine lange Codelänge hat, dass es auch Leerzeichen mit halber Breite zählt?
Ruby Array | Ruby Class | Python | |
---|---|---|---|
Codelänge(Byte) | 392 | 631 | 603 |
Ausführungszeit(ms) | 17 | 18 | 25 |
Erinnerung(KB) | 2428 | 3836 | 3828 |
Recommended Posts