Bài toán Minimax

Đề bài

Mô tả

Cho n mảng a1,a2,…,an; mỗi mảng gồm đúng m số nguyên. Ký hiệu phần tử thứ y của mảng thứ x là ax,y.

Bạn cần chọn hai mảng ai và aj (1≤i,j≤n, cho phép i=j). Sau đó tạo ra một mảng mới b gồm m số nguyên, trong đó với mỗi k∈[1,m]:

bk=max(ai,k,aj,k).

Mục tiêu là chọn i và j sao cho giá trị mink=1mbk là lớn nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m — số lượng mảng và số phần tử trong mỗi mảng.
  • n dòng tiếp theo, dòng thứ x chứa m số nguyên ax,1,ax,2,…,ax,m.

Dữ liệu ra

In ra hai số nguyên i và j (1≤i,j≤n, cho phép i=j) — chỉ số của hai mảng được chọn để giá trị mink=1mbk lớn nhất. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1≤n≤3·105
  • 1≤m≤8
  • 0≤ax,y≤109

Ví dụ

Input Output Giải thích
6 5
5 0 3 1 2
1 8 9 1 3
1 2 3 4 5
9 1 0 3 7
2 3 0 6 3
6 4 1 7 0
1 5 Chọn mảng 1 = [5, 0, 3, 1, 2] và mảng 5 = [2, 3, 0, 6, 3]. Khi đó b=[5,3,3,6,3] và minbk=3. Không thể đạt giá trị nhỏ nhất lớn hơn 3.
1 1
0
1 1 Chỉ có một mảng nên buộc chọn i=j=1, b=[0], min=0.
3 3
99 99 99
100 100 100
100 100 100
1 3 Chọn mảng 1 và mảng 3 cho b=[100,100,100], giá trị nhỏ nhất là 100. Các đáp án khác như 2 3, 3 3, 2 2 cũng được chấp nhận.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0