Otobüs yükü yasal mı?


15

Bugün otobüsteydim ve şu işareti fark ettim:

      seated    standing    wheelchairs
max1    37         30            00
max2    36         26            01
max3    34         32            00

Oturmuş yolcu, stadyum ve tekerlekli sandalye sayısı, masadaki bir sıradan daha fazla olmamalıdır. (Ayrıntılar için sohbete bakın.)

Bu zorluğun amaçları için bu fikri genelleştireceğiz: Kesinlikle pozitif bir uzunluk N (yolcu tipi sayısı) negatif olmayan bir tamsayı listesi ve kesinlikle pozitif boyutlarda (N sütunları ve yapılandırma başına bir satır) negatif olmayan bir tamsayı listesi verildiğinde veya bunun dönüştürülmesinde), hangi yapılandırma sınırlarının karşılandığını belirten bir indeks / doğruluk falsisi / iki benzersiz değer listesi döndürün.

Yukarıdaki matrisle:
30,25,1[1](0 dizinli) [2](1 dizinli) veya [false,true,false](Boole) veya ["Abe","Bob","Abe"](iki benzersiz değer) vb.

Aşağıdaki test senaryoları yukarıdaki matrisi ve 0/1 değerini false / true için kullanır:
[30,30,0][1,0,1]
[30,31,0][0,0,1]
[35,30,0][1,0,0]
[0,0,1][0,1,0]
[0,0,0][1,1,1]
[1,2,3][0,0,0]

Aşağıdaki test senaryoları aşağıdaki matrisi kullanır:
1 2 0 4
2 3 0 2

[1,2,1,2][0,0]
[1,3,0,1][0,1]
[1,2,0,3][1,0]
[1,2,0,1][1,1]


Ben bu zorluğu yanlış anlama muyum ya edebilir [30,31,0]olmak [1, 1, 1]da kapsadığı çünkü max3?
Okx

Gerçek değerlerin değiştirilmesine izin veriliyor mu? (örn. yerinde herhangi bir doğruluk değeri ve yerinde 0herhangi bir yanlışlık var 1mı?)
Bay Xcoder

@ OKx Bir şeyi yanlış anlıyorsun. [x,31,z]dışarıda kalır max1ve max231 stada izin vermezler.
Adám

@ Mr.Xcoder Bu tür zorluklarda buna genellikle izin verilir mi?
Adám

Düşünüyordum (bkz. (2) ) (ayrıca Martin'in yorumuna da bakınız ), bu varsayılan olarak izin veriliyor, ancak meta bir fikir birliği bulamadım. Önce OP'nin sorulması gerektiği sonucuna varılan bu meta soruyu yayınlayarak ilerledim . Genellikle izin veriyorum, neden değiştirilmemeleri gerektiğini anlamıyorum.
Bay Xcoder

Yanıtlar:



6

Haskell, 22 20 bayt

map.(or.).zipWith(>)

FalseYasal olup Trueolmadığını döndürür .

Çevrimiçi deneyin!

Dönüş değerleri olarak Doğru / Yanlış döndürmek 2 bayt kazandırır (teşekkürler @ user202729!). İle Trueyasal bunun en için map.(and.).zipWith(<=)(22 bayt). Çevrimiçi deneyin!


Çıktıda true ve false döndürmek daha kısa bir çözümle sonuçlanır.
user202729



3

R , 32 30 26 bayt

function(x,y)!colSums(x<y)

Çevrimiçi deneyin!

Matrisi transpoze formda x, test config as olarak kabul eder y. Bir booleans vektörü döndürür.

Mnel sayesinde ilk -2 bayt ve JayCe tarafından -4.


2
Bir işlev gövdesi ile 2 bayt kaydedin (x> = y, 2, tümü)
mnel


2

Jöle , 3 bayt

<Ẹ€

Çevrimiçi deneyin!

0= Doğru, 1= Yanlış.


Değerlerin farklı olması gerekmiyorsa, işe
yarar

@ Mr.Xcoder Bu seçeneğin burada verildiğini sanmıyorum. Sanırım bekleyip göreceğim.
Outgolfer Erik


1
@ Mr.Xcoder Hm, görünüşe göre tam olarak "doğruluk-sahtelik" değil, maalesef meydan okumanın istediği şey "sahtelik-doğruluk" değil.
Outgolfer Erik

@ Mr.Xcoder Jelly'in ihtiyacı var .
Adám




2

Retina 0.8.2 , 57 bayt

\d+
$*
;(?=.*;(.*))
;$1¶
%(+`,1*(1*)(;.*),\1$
$2
(1*);\1$

Çevrimiçi deneyin! Bağlantı, test senaryolarını içerir, ancak çıktının tümü birlikte çalıştırılır. Açıklama:

\d+
$*

Tekli'ye dönüştür.

;(?=.*;(.*))
;$1¶

Matrisin her satırına listenin kendi kopyasını verin.

%(

Matrisin her satırında ayrı ayrı çalışın.

+`,1*(1*)(;.*),\1$
$2

Satır ve listenin son sayısını arka arkaya kaldırın, satırın son sayısı en az listenin numarası kadar büyüktür.

(1*);\1$

Daha sonra listede bir sayı kalmalı ve satırdaki sayı en az bu kadar büyük olmalıdır.




1

05AB1E , 5 bayt

εs<›P

Çevrimiçi deneyin veya tüm test senaryolarını doğrulayın .

Açıklama:

Ne yazık ki 05AB1E v1 için 1 karakterlik bir yerleşik bulunmuyor veya bu yüzden kullanmadan önce her değeri düşürüyorum . Halen geliştirilmekte olan 05AB1E v2'de bu yerleşikler bulunacaktır.

ε        # For-each row of the (implicitly input) matrix:
 s       #  Swap, so the (implicitly input) list is at the top of the stack
  <      #  Decrease every value in the input-list by 1
         #   i.e. [30,25,1] → [29,24,0]
        #  Check for each value in the matrix-row if they're larger
         #  than the input-list value at the same index
         #   i.e. [37,30,0] and [29,24,0] → [1,1,0]
    P    #  Then take the product of these checks
         #   i.e. [1,1,0] → 0

1

Stax , 8 bayt

â ╤┘µrφî

Çalıştır ve hata ayıkla

Açıklama:

mx\{:vm|A Full program, unpacked, implicit input
m         Map over rows of the matrix:
 x\         Zip with input array
   {  m     Map over result:
    :v        Check if non-increasing, i.e. matrix element greater than or equal to array element
       |A   All.
            Implicit output


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.