質問編集履歴

2

修正したコード2を追記

2019/05/28 13:04

投稿

amatsukixprog
amatsukixprog

スコア17

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,56 @@
94
94
 
95
95
  puts (A.inject(:+)+sum)
96
96
 
97
+ ```
97
98
 
98
99
 
100
+
101
+ ### 修正したコード2
102
+
103
+
104
+
105
+ ```Ruby
106
+
107
+ N,M=gets.chomp.split.map(&:to_i)
108
+
109
+ A=gets.chomp.split.map(&:to_i)
110
+
111
+ c=M.times.map { gets.split.map(&:to_i) }
112
+
113
+ c.sort_by!{|i,j| j }.reverse!
114
+
115
+ A.sort!
116
+
117
+ sum=0
118
+
119
+ M.times do |i|
120
+
121
+ break if A.empty? || A[0]>c[i][1]
122
+
123
+ b = 0
124
+
125
+ c[i][0].times do |j|
126
+
127
+ break if A[j]>c[i][1]
128
+
129
+ b += 1
130
+
131
+ end
132
+
133
+ A.shift(b)
134
+
135
+ sum += c[i][1]*b
136
+
137
+ end
138
+
139
+ if A.empty? then
140
+
141
+ puts sum
142
+
143
+ else
144
+
145
+ puts (A.inject(:+)+sum)
146
+
147
+ end
148
+
99
149
  ```

1

修正したコードを追記

2019/05/28 13:04

投稿

amatsukixprog
amatsukixprog

スコア17

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,47 @@
53
53
 
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ ### 修正したコード
60
+
61
+ ```Ruby
62
+
63
+ N,M=gets.chomp.split.map(&:to_i)
64
+
65
+ A=gets.chomp.split.map(&:to_i)
66
+
67
+ c=M.times.map { gets.split.map(&:to_i) }
68
+
69
+ c.sort_by!{|i,j| j }.reverse!
70
+
71
+ A.sort!
72
+
73
+ sum=0
74
+
75
+ M.times do |i|
76
+
77
+ break if A[0]>c[i][1]
78
+
79
+ b = 0
80
+
81
+ c[i][0].times do |j|
82
+
83
+ break if A[j]>c[i][1]
84
+
85
+ b += 1
86
+
87
+ end
88
+
89
+ A.shift(b)
90
+
91
+ sum += c[i][1]*b
92
+
93
+ end
94
+
95
+ puts (A.inject(:+)+sum)
96
+
97
+
98
+
99
+ ```