Hiç 3D şekillere bakıp 2 boyutumuz olduğunu düşünüyor musunuz? Şimdi 3D'yi 1D haline getirelim! (Orada ne yaptığımı gördün mü?)
Görev
Bir küpün 2B temsili verildiğinde (aşağıdaki düzen), işaretçileri temel alarak tek bir dize haline getirin.
Küp
Bu, op-op ( ,) ve köşelerde ( <>v^/) işaretçilerle dolu küpün yerleşim düzeni . Navigasyon İşaretçisi (NP) gösterilen yerde programı başlatır.
| NP begins here, moving right.
V
>,,,,,,,,,,,,,,,,,,v
, ,,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
/,,,,,,,,,,,,,,,,,,/ /
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
^,,,,,,,,,,,,,,,,,,<
NP, başlangıçtan köşeye gelene kadar hareket etmeye devam ediyor. Her köşede, köşede bir işaretçi tarafından geçersiz kılınmadıkça NP'yi yeni bir yöne yönlendirecek varsayılan bir yön bulunur. Yukarıdaki diyagramda gösterilmiştir. Programdaki işaretçiler v^<>/( /aşağı veya yukarı noktalar, düzen nedeniyle ikisi arasında asla karışıklık olmayacaktır)
NP ¶sembole ulaştığında durur (Evet, bunun çok baytlık bir karakter olduğunu biliyorum, onunla başa çık). Üzerinde ilerlediği her karakter, işaretçiler, no-op ( ,) ve ¶sembolü hariç son çıktı dizesine eklenir .
Giriş
Girdi düzenini eşleşen bir çok satırlı dize olacaktır CUBE aralığında herhangi bir karakter ile değiştirilir boşluk olmayan karakterler ile 0x21karşı 0x7Eve en azından EOF bir örneğini.
Girişi şu şekilde alabilirsiniz:
- Çok satırlı bir dize
- Her satırın listede yeni bir öğe olduğu dizelerin listesi
- Her satırın bir listeye ayrıldığı 2B dizeler listesi
Çıktı
Küp, tek bir satıra dizildi.
Koşullu İşaretçi
NP, "koşullu" işaretçi adı verilen bir şey için kullanılan bir boole değerine sahiptir. true .
"Koşullu" işaretçi ( ?) arasında NP değeri, diğer bir işaretçidir trueve falsekullanıldığı zaman, her. Koşullu işaretçiler yalnızca 3 parçanın (3 nokta köşe) birleştiği köşelerde kullanıldığında etkilidir. Eğer değer trueNP koşullu göstergeye ulaştığında ise, NP KÜP görüntüsünde varsayılan yöne hareket eder ve yönlendirildikten sonra NP değeri değiştirilir. Bu nedenle, açıksafalse , NP varsayılan olmayan yönü izler.
Hiçbir zaman NP'nin koşullu bir duruma geçtiği bir örnek olmayacaktır ve varsayılan yön, henüz geldiği yöndür. Bunun ön yüzün sol köşesi olduğunu ve NP değerinin şu anda olduğunu düşünün true:
NP direction
/
,
,
,,,?
,
,
Bu asla gerçekleşmeyecektir, çünkü varsayılan yön onu önceki haline geri yansıtır.
Koşullu işaretçi 3 noktalı bir köşedeyse:
- Son dizeye eklenmez
- NP değeri, NP yönlendirildikten sonra
truevefalsesonra değiştirilir . - NP değeri ise
true, NP varsayılan yöne yönlendirilir. Aksi takdirde, varsayılan olmayan yöne yönlendirilir.
Bir parkurda veya 2 noktalı bir köşedeyse:
- Son dizeye eklenir
- değeri bir konum değiştirir
- IP değildir yönlendirilmiş
Dikkat edilecek bir şey
İşaretçi bir iz üzerindeyse ve boşluklara işaret etmiyorsa , NP yeni parçaya yönlendirilir, son karaktere bir sonraki karakteri ekler ve NP'yi 90 derece sağa döndürür.
abcd
>e
g f
/
NP direction
yassılaşır
(...) gef (...)
DEĞİL
(...) g>def (...)
Bir /işaretçi bu örnekte NP'yi bir alana yönlendiremeyeceği için yönlendirmez.
f
e
> ab/d
olacaktı ab/def
kurallar
- Küpün genişliği, yüksekliği ve derinliği değişebilir
- Küpün yüksekliği ve derinliği her zaman aynı olacak ve genişliğin yarısı olacaktır, bu nedenle genişlik her zaman eşit olacaktır.
- Genişlik (dahil) 6 ile 60 arasında olacaktır.
- Her zaman
¶NP tarafından ulaşılabilen bir EOF ( ) olacaktır. Örneğin, küpte asla böyle bir şey olmayacak:<¶>çünkü NP asla küpe ulaşamayacaktır. - Küpün izlerine boşluk eklenemeyeceğinden, son dizgide hiç boşluk olmamalıdır.
- Eğer işaretçilerden birine (köşeye değil) bir işaretçi yerleştirilirse ve NP'yi boşluklara yönlendirirse, NP sabit kalır ve karakter son dizgiye eklenir.
- Ancak, işaretçi onu yolda tutuyorsa, NP yönlendirilir ve işaretçi karakteri eklenmez
,Son dizeye no-ops ( ) eklenmediğinden, son dize herhangi bir karakter içermemelidir,.- Girişin doğru olacağını varsayabilirsiniz.
- Bu bir kod golf bayt kazanır çok kısa kod kazanır!
Örnekler
Input
Output
-----
Input
Output
abcdef
¶ ,g
q,,,,, h
p ,i
onmlkj
abcdefghijklmnopq
-----
>,,,,,,,,,,,,,,,,,,v
¶ ,,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
/,,,,,,,,,,,,,,,,,,/ /
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
^,,,,,,,,,,,,,,,,,,<
nothing
-----
Mr/~gm,Vc!r,0cbmPC@Zg9jb)7=m^ppwN*Nuk){r
c ¶Z
J ; #
e j 8
] b "
# ` 4
h $ -
p n 2
L S P
B ; R
@ J D
E N <
O \ p
B y =
| 9 ;
T x [
6 o k
! L =
E K ~
>mjmz6,?A*Q)^.a:IpGP"^bK}DSXL)2F!BV|"m6/ T
a A 6
5 = p
1 i R
4 / ?
- Z (
1 " `
' 0 {
N p M
O * K
Z J $
" ( d
4 + o
f U g
i v b
U ~ L
U M h
g ^ D
2 (g
5]u*n<Ldn</9/XQyC444Va\m}W3Rf,rp"a@5cZB0
(Newlines added for readability)
Mr/~gmVc!r0cbmPC@Zg9jb)7=m^ppwN*Nuk){rZ#8"4-2PRD<p=;[k=~T
6pR?(`{MK$dogbLhDg0BZc5@a"prfR3W}m\aV444CyQX/9/ndLn*u]52g
UUif4"ZON'1-415amjmz6?A*Q)^.a:IpGP"^bK}DSXL)2F!BV|"m6KLox9
y\NJ;Sn$`bj;
-----
NEWYORKCITYBABY!
¶ ,,
, , ,
, , ,
, , ,
, , ,
, , ,
,,,,,,,,,,,,,,,, ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
,,,,,,,,,,,,,,,,
NEWYORKCITYBABY!
-----
/{Y!_(=-)s<e!D^<+<+1o30d>QOx9kfu?3X2I:8],t>Ye~,Y9/6;u@
] >Y
! 1 )
c 7 8
^ K &
f K 9
M } O
s _ ?
h N e
? u ,
g = s
> Q M
a 0 9
b c (
h { c
[ m *
I R %
K E >
u 5 n
W f ]
} | y
F E q
) < ;
X L S
F M |
u * Z
>XZpJ=L`+8ONRk?T7$qVr6-U^f14{>>ABEEP`Mjx&T[/&o*F=*qq{/ e
¶ < ^
+ P C
. x m
; ^ >
y 4 b
5 v `
Q B c
2 e r
a x I
3 1 Y
Q v `
w ; o
* S h
E b S
r 6 P
M ` l
% M A
- ` "
j \ s
} ~ J
$ h c
% p O
I Z Z
] N E
` 3<
x^}}SI"-a3[%7U5EV}"UM?Aov|E_yjrMt<HAQ@}QAABO&y//R0$\2p
(Newlines added for readability)
]!c^fMsh?g>abh[IKuW}F)XFuXZpJ=L`+8ONRk?T7$qVr6-U^f14{ABEE
P`Mjx&T[/&o*F=*qq{*ML<E|f5ERm{c0Q=uN_}KK71Y)8&9O?esM9(c*%
>n]yq;S|Ze^Cm>b`crIY`ohSPlA"sJcOZE3NZph~\`M`6bS;;Sb6`M`\~
hpZN3p2\$0R//y&OBAAQ}@QAHtMrjy_E|voA?MU"}VE5U7%[3a-"IS}}^
x`]I%$}j-%MrE*wQ3a2Q5y;.+
-----
%:biv+|?
¶ \+
T c ,
?{yX<//v "
i [ @
Q Tj
U8sUNl.?
%:biv+|+"@jT[[T.lNUs8UQi{yXXy{T
-----
FCf2hoYA)&*j
F ¶#
3 p (
& ~ w
; * t
39Hq{F'MmmO/ 9
5 \ D
- | }
8 c l
a 25
GKa"<0/7MG[?
FCf2hoYA)&*j#(wt9D}l5[GM7/0"aKGa8-53;&3FFCf2hoYA)&*j#(wt9D}l52c|\*~p
-----
#S^[WNk3;9v;e2\h!@CI#Il?
G g`
$ 2 \
V 9 S
m Y b
6 ) *
U ' V
[ g V
I 8 X
< T U
K ¶ C
?ozMt+xxxxutvQgkx&D9I/<v '
w K p
V y h
( R y
e P i
] ! x
Z / s
y w '
# X 4
c ~ W
Z E,
~IdXPYS.Lc49lC~vjULUBv.?
(Newlines added for readability)
#S^[WNk3;9v;e2\h!@CI#Il`\Sb*VVXUC'phyixs'4WE~Xw/!PRyKKyRP!/wX~E
.vBULUjv~Cl94cL.SYPXdI~Zc#yZ]e(VwozMt+xxxxutvQgkx&D9I//I9D&xkgQ
vtuxxxx+tMzoK<I[U6mV$G#S^[WNk3;9v;e2\h!@CI#Ilg29Y)'g8T