Là xe buýt tải hợp pháp?


15

Tôi đã ở trong xe buýt hôm nay và nhận thấy dấu hiệu này:

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

Số lượng hành khách ngồi, ghế đứng và xe lăn đều phải không lớn hơn một số hàng trong bàn. (Xem trò chuyện để biết chi tiết.)

Với mục đích của thử thách này, chúng tôi sẽ khái quát ý tưởng này: Đưa ra danh sách số nguyên không âm có độ dài dương N (số loại hành khách) và ma trận số nguyên không âm có kích thước dương (cột N và một hàng trên mỗi cấu hình hoặc hoán vị của điều này), trả về một danh sách các chỉ số / giá trị trung thực / hai giá trị duy nhất cho biết các giới hạn cấu hình nào được đáp ứng.

Ví dụ: với ma trận trên:
30,25,1[1](0-index) [2](1-index) hoặc [false,true,false](Boolean) hoặc["Abe","Bob","Abe"] (hai giá trị duy nhất), v.v.

Các trường hợp kiểm tra sau sử dụng ma trận trên và 0/1 cho sai / đúng:
[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]

Các trường hợp kiểm tra sau sử dụng ma trận sau:
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]


Tôi có hiểu nhầm thách thức này hay có thể [30,31,0][1, 1, 1]do nó được bảo vệ max3?
Okx

Là trao đổi giá trị sự thật được cho phép? (ví dụ: bất kỳ giá trị trung thực nào thay thế 0và bất kỳ giá trị giả nào thay 1thế?)
Ông Xcoder

@Okx Bạn đang hiểu nhầm điều gì đó. [x,31,z]loại trừ max1max2vì họ không cho phép 31 standee.
Adám

@ Mr.Xcoder Điều đó có thường được cho phép trong các thử thách như thế này không?
Adám

Tôi đã từng nghĩ (xem (2) ) (cũng xem bình luận của Martin ) điều này được cho phép theo mặc định, nhưng tôi chưa tìm thấy sự đồng thuận meta. Tôi đã tiến hành bằng cách đăng câu hỏi meta này , kết luận rằng OP nên được hỏi trước. Tôi thường cho phép nó, tôi không thấy lý do tại sao chúng không nên hoán đổi.
Ông Xcoder

Câu trả lời:



6

Haskell, 22 20 byte

map.(or.).zipWith(>)

Trả về Falsenếu hợp pháp và Truenếu không.

Hãy thử trực tuyến!

Lật True / false làm giá trị trả về tiết kiệm 2 byte (cảm ơn @ user202729!). Với Truepháp lý đó là map.(and.).zipWith(<=)(22 byte). Hãy thử trực tuyến!


Lật đúng và sai trong kết quả đầu ra trong một giải pháp ngắn hơn.
dùng202729

4

Octave , 15 byte

@(a,b)all(a>=b)

Hãy thử trực tuyến!

Theo nhận xét của chủ nhật, bỏ qua chuyển đổi sẽ tiết kiệm 2 byte.


OP cho phép lấy ma trận làm chuyển vị của những gì được hiển thị trong câu hỏi và bạn có thể lấy bdưới dạng vectơ cột thay vì vectơ hàng (vì nó chỉ được chỉ định làm danh sách), tiết kiệm 2 byte: Hãy thử trực tuyến!
- Phục hồi Monica


3

R , 32 30 26 byte

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

Hãy thử trực tuyến!

Chấp nhận ma trận ở dạng chuyển đổi như x , cấu hình thử nghiệm như y. Trả về một vectơ booleans.

-2 byte ban đầu nhờ vào mnel và hơn nữa -4 bởi JayCe.


2
Lưu 2 byte với cơ thể chức năng được áp dụng (x> = y, 2, tất cả)
mnel


2

Thạch , 3 byte

<Ẹ€

Hãy thử trực tuyến!

0= Đúng, 1= Sai.


Nếu các giá trị không cần phải khác biệt, sẽ hoạt động
Ông Xcoder

@ Mr.Xcoder Tôi không nghĩ rằng tùy chọn đó được đưa ra ở đây. Tôi đoán tôi sẽ chờ xem.
Erik the Outgolfer


1
@ Mr.Xcoder Hừm, có vẻ như không chính xác là "thật-giả" mà là "giả-thật", thật không may, đó không phải là điều mà thách thức yêu cầu.
Erik the Outgolfer

@ Mr.Xcoder Jelly cần .
Adám




2

Võng mạc 0.8.2 , 57 byte

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

Hãy thử trực tuyến! Liên kết bao gồm các trường hợp thử nghiệm, nhưng đầu ra là tất cả chạy cùng nhau. Giải trình:

\d+
$*

Chuyển đổi sang unary.

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

Cung cấp cho mỗi hàng của ma trận bản sao danh sách riêng của nó.

%(

Hoạt động riêng biệt trên mỗi hàng của ma trận.

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

Liên tục xóa số cuối cùng của hàng và danh sách trong khi số cuối của hàng ít nhất lớn bằng số của danh sách.

(1*);\1$

Sau đó nên có một số còn lại trong danh sách và số trong hàng ít nhất phải lớn như vậy.




1

05AB1E , 5 byte

εs<›P

Hãy thử trực tuyến hoặc xác minh tất cả các trường hợp thử nghiệm .

Giải trình:

Thật không may, 05AB1E v1 không có nội dung 1 char cho hoặc vì vậy tôi giảm từng giá trị thay vì trước khi sử dụng . 05AB1E v2 hiện đang được phát triển sẽ có các nội dung này.

ε        # 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 byte

â ╤┘µrφî

Chạy và gỡ lỗi nó

Giải trình:

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


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.