add new solutions

This commit is contained in:
Yiyang Kang 2026-02-01 14:56:08 +09:00
parent 67cad91898
commit 51975f3386
Signed by: kkyy
SSH key fingerprint: SHA256:lJSbAzC3MvrSORdvIVK6h/3g+rVKJNzM7zq0MgA9WKY
24 changed files with 933 additions and 14 deletions

View file

@ -0,0 +1,38 @@
package q1117
type void struct{}
type H2O struct {
h, o, hRel chan void
}
func NewH2O() *H2O {
h := &H2O{
h: make(chan void, 2),
o: make(chan void, 2),
hRel: make(chan void, 2),
}
h.o <- void{}
return h
}
func (h *H2O) Hydrogen(releaseHydrogen func()) {
<-h.h
// releaseHydrogen() outputs "H". Do not change or remove this line.
releaseHydrogen()
h.hRel <- void{} // confirmation
}
func (h *H2O) Oxygen(releaseOxygen func()) {
<-h.o
// releaseOxygen() outputs "H". Do not change or remove this line.
releaseOxygen()
h.h <- void{}
h.h <- void{}
<-h.hRel
<-h.hRel
h.o <- void{}
}