trang chủ / đề bài / dimatodo

Danh sách công việc

Đề bài

Mô tả

Có n công việc được đánh số từ 1 đến n. Công việc thứ i có độ nặng nhắc nhở là ai.

Bạn phải làm hết cả n công việc theo thứ tự vòng tròn: chọn một công việc bắt đầu s, rồi lần lượt làm s,s+1,…,n,1,2,…,s−1. Ví dụ với n=6 và s=5, thứ tự làm việc là 5,6,1,2,3,4.

Trong lúc bạn làm việc, người giám sát chỉ có mặt ở phòng theo chu kỳ: họ nhắc nhở bạn ở công việc đầu tiên bạn làm, rồi rời đi đủ lâu để bạn làm yên ổn k−1 công việc tiếp theo, sau đó quay lại và nhắc nhở ở công việc kế tiếp, cứ thế cho đến hết. Nói cách khác, nếu tính theo thứ tự thực hiện thì các công việc bị nhắc nhở là công việc thứ 1,k+1,2k+1,…

Tổng độ nặng bạn phải chịu là tổng các ai của những công việc bị nhắc nhở. Hãy chọn công việc bắt đầu s sao cho tổng này nhỏ nhất.

Dữ liệu đảm bảo n chia hết cho k.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an.

Dữ liệu ra

In ra một số nguyên duy nhất: số hiệu công việc bắt đầu s cho tổng độ nặng nhỏ nhất. Nếu có nhiều đáp án, in ra s nhỏ nhất.

Ràng buộc

  • 1≤k≤n≤105
  • 1≤ai≤103
  • n chia hết cho k

Ví dụ

Input Output Giải thích
6 2
3 2 1 6 5 4
1 Với k=2, bắt đầu từ s=1 thì bị nhắc ở các công việc 1,3,5, tổng là 3+1+5=9. Bắt đầu từ s=2 thì bị nhắc ở 2,4,6, tổng là 2+6+4=12. Mọi s khác đều cho một trong hai tổng trên, nên đáp án là 1.
10 5
1 3 5 7 9 9 4 1 8 5
3 Với k=5, mỗi lựa chọn s chỉ bị nhắc ở đúng hai công việc s và s+5. Cặp (3,8) cho tổng 5+1=6, nhỏ nhất. Cặp (8,3) cũng cho tổng 6 nhưng 3<8.

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