Tulis program atau fungsi yang menggunakan daftar ketidaksetaraan matematika yang kosong yang menggunakan operator kurang dari ( <
). Setiap baris dalam daftar akan memiliki formulir
[variable] < [variable]
di mana a [variable]
bisa berupa string nonempty dari huruf kecil huruf az. Seperti dalam matematika dan pemrograman normal, variabel dengan nama yang sama identik.
Jika bilangan bulat positif dapat ditetapkan untuk setiap variabel sehingga semua ketidaksetaraan terpenuhi, maka cetak atau kembalikan daftar variabel dengan tugas tersebut. Setiap baris dalam daftar ini harus memiliki formulir
[variable] = [positive integer]
dan semua variabel harus muncul tepat satu kali dalam urutan apa pun.
Perhatikan bahwa mungkin ada banyak kemungkinan solusi bilangan bulat positif untuk set ketidaksetaraan. Salah satunya adalah output yang valid.
Jika tidak ada solusi untuk ketidaksetaraan, maka jangan menghasilkan apa pun atau mengeluarkan nilai palsu (terserah Anda).
Kode terpendek dalam byte menang.
Contohnya
Jika inputnya adalah
mouse < cat
mouse < dog
maka semua ini akan menjadi output yang valid:
mouse = 1
cat = 2
dog = 2
mouse = 37
cat = 194
dog = 204
mouse = 2
cat = 2000000004
dog = 3
Jika inputnya adalah
rickon < bran
bran < arya
arya < sansa
sansa < robb
robb < rickon
maka tidak ada tugas yang mungkin karena itu intinya rickon < rickon
, sehingga tidak ada output atau output palsu.
Lebih banyak contoh dengan solusi:
x < y
x = 90
y = 91
---
p < q
p < q
p = 1
q = 2
---
q < p
q < p
p = 2
q = 1
---
abcdefghijklmnopqrstuvwxyz < abcdefghijklmnopqrstuvwxyzz
abcdefghijklmnopqrstuvwxyz = 123456789
abcdefghijklmnopqrstuvwxyzz = 1234567890
---
pot < spot
pot < spot
pot < spots
pot = 5
spot = 7
spots = 6
---
d < a
d < b
d < c
d < e
d = 1
a = 4
b = 4
c = 5
e = 4
---
aa < aaaaa
a < aa
aaa < aaaa
aa < aaaa
a < aaa
aaaa < aaaaa
aaa < aaaaa
a < aaaaa
aaaa = 4
aa = 2
aaaaa = 5
a = 1
aaa = 3
---
frog < toad
frog < toaster
toad < llama
llama < hippo
raccoon < science
science < toast
toaster < toad
tuna < salmon
hippo < science
toasted < toast
raccoon = 1
frog = 2
toaster = 3
toasted = 4
toad = 5
llama = 6
hippo = 7
science = 8
toast = 9
tuna = 10
salmon = 11
Lebih banyak contoh tanpa solusi: (dipisahkan oleh garis kosong)
z < z
ps < ps
ps < ps
q < p
p < q
p < q
q < p
a < b
b < c
c < a
d < a
d < b
d < c
d < d
abcdefghijklmnopqrstuvwxyz < abcdefghijklmnopqrstuvwxyz
bolero < minuet
minuet < bolero
aa < aaaaa
a < aa
aaa < aaaa
aa < aaaa
aaaaa < aaaa
a < aaa
aaaa < aaaaa
aaa < aaaaa
a < aaaaa
g < c
a < g
b < a
c < a
g < b
a < g
b < a
c < a
g < b
a < g
b < a
c < b
g < c
a < g
b < a
c < b
geobits < geoborts
geobrits < geoborts
geology < geobits
geoborts < geology
Jawaban:
Pyth, 39 byte
Cobalah online: Demonstrasi
Brute-force melalui semua permutasi yang mungkin (dan menafsirkannya sebagai penyortiran), memeriksa apakah mereka cocok dengan ketidaksetaraan, dan menetapkan nilai-nilai tersebut
1, 2, ...., n
.Penjelasan
sumber
CJam (
53 5249 byte)Demo online
Ini brute-kekuatan semua permutasi dari token yang berbeda, penyaringan bagi mereka tugas dari nomor
0
untukn-1
yang menaati semua kendala, dan kemudian format mereka, incrementing nomor, dan hadiah yang pertama. Ini pasti untuk menemukan solusi jika ada, karena pada dasarnya semacam topologi.Terima kasih kepada Reto Koradi untuk 3 karakter dan Martin Büttner untuk 1.
sumber
Mathematica, 83 byte
Mengambil input sebagai daftar ketidaksetaraan. Entah menampilkan daftar tugas atau
Null
jika tidak mungkin.sumber