#!/usr/bin/ruby N,K=gets.split.map(&:to_i) D,R=(K-1).divmod(N) R+=1 S=gets.chomp.chars.map(&:to_i) #phase1: brute force buy=[0]*(N+1) buy[0]=0 atari=0 cur=0 0.step(N-1){|i| if atari==0 atari+=1 buy[i+1]=1 end atari+=S[i]-1 } 1.step(N){|i| buy[i]+=buy[i-1] } #p buy if D==0 p buy[R] elsif D==1 p buy[-1]+[buy[R]-atari,0].max else p buy[-1]+(D-1)*[buy[-1]-atari,0].max+[buy[R]-atari,0].max end