find_max 1.2.1 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f0f2754393ada65aa01886ab9c123d00f045541
4
- data.tar.gz: 4a6c799bbd94e1f52d0a4ddaee2e09e02c1840a9
3
+ metadata.gz: bff9d21602b1080187aa2873ad8acbc38804c12f
4
+ data.tar.gz: 0f15b4826ff9184c7e7d658dd92756a05e0d031a
5
5
  SHA512:
6
- metadata.gz: 413fe988dc42646268883520ce7b206c2021b5b361cea6752785719f57308656fb05b9ad84d2111be74f446e05da11ca3341d02b06ac86b64b51d1b25265869e
7
- data.tar.gz: c4b28a40f9618b7a08104e967f84e1d27e654c110f8903ff08958c604900e66aacdc8a5f7711dfc53916ea7bf7acdc4666950f320e62151a014c6d815737dbe1
6
+ metadata.gz: d05f78cef7dc0fb9a45972a06076de98da102bf7868261fd65fba5eff3f24c09cda1b795da31fffe055b554dac78255b0e1766d08cefe8592f2df37ee38683a1
7
+ data.tar.gz: ad537ff174b712cc56e916661483d952397d22916ed969f68f7d9a7c6975b6c48b912287b0a1ae191088f91b3aaf20d85903af7aef1e7e9484b5ded79c82d131
@@ -17,16 +17,31 @@ module FindMax::Services
17
17
 
18
18
  @sets_max_numbers = Immutable::SortedSet.new
19
19
  numbers = []
20
+ numbers_length = 0
20
21
  length = 0
21
- $stdin.each_line do |line|
22
- numbers = line.scan(/\d+/).map { |i| i.to_i } || []
22
+ $stdin.each(' ') do |i|
23
23
 
24
- add_to_set_numbers(numbers, length)
24
+ number = i.to_i
25
+ if numbers_length == 255
26
+ numbers_length = 0
27
+ else
28
+ numbers_length += 1
29
+ numbers << number
30
+ next
31
+ end
25
32
 
33
+ add_numbers_to_set(numbers, length)
26
34
  length = @sets_max_numbers.length
27
35
  if (@count_max_numbers < length)
28
36
  @sets_max_numbers = @sets_max_numbers[@count_max_numbers_negative..-1]
29
37
  end
38
+ numbers = []
39
+ end
40
+
41
+ add_numbers_to_set(numbers, length)
42
+ length = @sets_max_numbers.length
43
+ if (@count_max_numbers < length)
44
+ @sets_max_numbers = @sets_max_numbers[@count_max_numbers_negative..-1]
30
45
  end
31
46
 
32
47
  @sets_max_numbers.to_a
@@ -37,13 +52,12 @@ module FindMax::Services
37
52
 
38
53
  private
39
54
 
40
- def add_to_set_numbers(numbers, length)
55
+ def add_numbers_to_set(numbers, length)
41
56
  current_increase = 0
42
- is_min_namber_isset = !@sets_max_numbers.min.nil?
43
57
  is_minimum_set_of_full = @count_max_numbers < length + current_increase + 1
44
58
 
45
- if is_min_namber_isset && is_minimum_set_of_full
46
- min_number = @sets_max_numbers.min
59
+ min_number = @sets_max_numbers.min
60
+ if is_minimum_set_of_full
47
61
  numbers.each do |number|
48
62
  next if min_number > number
49
63
  @sets_max_numbers = @sets_max_numbers << number
@@ -51,10 +65,9 @@ module FindMax::Services
51
65
  current_increase += 1
52
66
  end
53
67
  else
54
- min_number = @sets_max_numbers.min
68
+ min_number = numbers.first if min_number.nil?
55
69
  numbers.each do |number|
56
- is_big_number = min_number > number rescue false
57
- if is_big_number
70
+ if min_number > number
58
71
  next unless @count_max_numbers > length + current_increase
59
72
  end
60
73
  @sets_max_numbers = @sets_max_numbers << number
@@ -66,4 +79,4 @@ module FindMax::Services
66
79
 
67
80
  end
68
81
 
69
- end
82
+ end
@@ -1,3 +1,3 @@
1
1
  module FindMax
2
- VERSION = "1.2.1"
2
+ VERSION = "1.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: find_max
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Safin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-10 00:00:00.000000000 Z
11
+ date: 2017-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: immutable-ruby
@@ -154,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
154
  version: '0'
155
155
  requirements: []
156
156
  rubyforge_project:
157
- rubygems_version: 2.5.1
157
+ rubygems_version: 2.6.8
158
158
  signing_key:
159
159
  specification_version: 4
160
160
  summary: ''