結果
| 問題 | 
                            No.1456 Range Xor
                             | 
                    
| コンテスト | |
| ユーザー | 
                             kanno_kanno
                         | 
                    
| 提出日時 | 2021-04-22 19:36:48 | 
| 言語 | Ruby  (3.4.1)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 570 bytes | 
| コンパイル時間 | 73 ms | 
| コンパイル使用メモリ | 7,552 KB | 
| 実行使用メモリ | 20,480 KB | 
| 最終ジャッジ日時 | 2024-07-04 06:31:32 | 
| 合計ジャッジ時間 | 6,514 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 19 WA * 27 | 
コンパイルメッセージ
Syntax OK
ソースコード
def reverse_calc(i, k, nums)
  tmp = nums[i]
  (0...i).to_a.reverse.each do |j|
    break if (tmp + nums[j]) > k
    tmp += nums[j]
  end
  tmp
end
def solve(line1, line2)
  n, k = line1.split.map(&:to_i)
  nums = line2.split.map(&:to_i)
  tmp = 0
  (0...n).each do |i|
    return 'No' if nums[i] > k
    next if (i != 0) && (nums[i - 1] == nums[i])
    tmp += nums[i]
    return 'Yes' if tmp == k
    # Kを超えた場合は再計算
    tmp = reverse_calc(i, k, nums) if tmp > k
  end
  'No'
end
line1 = gets.chomp
line2 = gets.chomp
puts solve(line1, line2)
            
            
            
        
            
kanno_kanno