#!/usr/bin/env ruby

require 'zipf'
require 'trollop'
require 'zlib'

conf = Trollop::options do
  opt :weights_files, "a number of weights files: name value", :required => true
  opt :filter, "Filter if key does not appear in every file.", :type => :bool, :default => false
end

h = {}
ARGV.each { |fn|
  f = ReadFile.new fn
  while line = f.gets
    k, v = line.split
    v = v.to_f
    if h.has_key? k
      h[k] << v
    else
      h[k] = [v]
    end
  end
  f.close
}

n = ARGV.size.to_f

h.each_pair { |k,w|
  next if conf[:filter] and w.size < n
  puts "#{k} #{w.inject(:+)/n}"
}