HCARDGAME - Bốc bài (bản khó)

Xem dạng PDF

Gửi bài giải

Điểm: 2,00 (OI)
Giới hạn thời gian: 0.1s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Tí và Tèo có một bộ bài đặc biệt. Bộ bài gồm nlá bài và chỉ có hai màu xanh và đỏ, các quân bài được đánh số từ 1đến ntừ dưới lên. Hai người chơi một trò chơi luân phiên nhau bốc bài, mỗi người đến lượt mình được bốc tối thiểu là 1, tối đa là klá bài từ trên xuống (số lá bài bốc mỗi lần không vượt quá số bài còn lại). Điểm mỗi người nhận được ở mỗi lần bốc là số lá bài đỏ bốc được, khi bốc hết bài, tổng số điểm của ai cao hơn sẽ là người chiến thắng. Hai người Tí và Tèo là những cao thủ chơi bài nên đã biết trước màu của những lá bài và luôn chọn cách bốc tối ưu nhất.

Cho biết số k, số lá bài nvà màu của các lá bài, em hãy tính xem với cỗ bài đó thì trong hai người chơi có ai là người chiến thắng không? Nếu có thì tổng số điểm của người thua cuộc đạt được là bao nhiêu?

Input

  • Dòng đầu tiên chứa hai số nguyên dương k;
  • Dòng thứ hai chứa một xâu độ dài nchỉ có các ký tự 01, ký tự thứ i là 0 nếu lá bài thứ imàu đen, 1 nếu lá bài thứ imàu đỏ.

Output

  • Nếu không ai là người thắng cuộc, in ra NO, ngược lại, in ra hai dòng:
  • Dòng đầu là YES
  • Dòng thứ hai là số điểm mà người thua cuộc đạt được.

Sample

Input #1
5 3
10110
Output #1
YES
1
Input #2
4 2
1111
Output #2
NO

Hint

  • Trong test 1: Nếu người đi đầu bốc 3lá bài trên cùng (lá 5,4và 3) thì sẽ được 2điểm (ở lá 3và lá 4), người đi sau bốc 2lá bài còn lại (lá 2và 1) thì được 1điểm (ở lá 1). Như vậy người đi trước đã thắng người đi sau. Người đi sau là người thua có thể có nhiều nhất là 1điểm.

Problem source: Chuyên Sơn La Online Judge


Bình luận

Hãy đọc nội quy trước khi bình luận.


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