Submission #1397738


Source Code Expand

Copy
class Integer
  @@fact
  @@factinv
  @@mod
  def self.init_fact(max,mod)
    @@mod=mod
    @@fact=[1,1]
    (2..max).each{|i|
      @@fact[i]=@@fact[i-1]*i%mod
    }
    @@factinv=[1,1]
    p 100
    @@factinv[max]=@@fact[max].pow({},mod-2)%mod
    p 1000
    (max-1).downto(1){|i|
      @@factinv[i]=@@factinv[i+1]*(i+1)%mod
    }
    p 100000
  end
  def pow(memo,n)
    return 1 if n==0
    return memo[n] if memo[n]
    memo[n] = pow(memo,n/2)*pow(memo,n/2)*(n%2==0?1:self)%@@mod
  end
  def combination(k)
    return 0 if self < k
    @@fact[self]*@@factinv[k]*@@factinv[self-k]%@@mod
  end
end

n=gets.to_i
a=gets.split.map(&:to_i)
dup=(1..n).find{|i|a.count(i)>1}
l,r=[a.index(dup),a.rindex(dup)]
Integer.init_fact(n+1,1000000007)
puts (1..n+1).map{|i|((n+1).combination(i)-(l+n-r).combination(i-1))%1000000007}

Submission Info

Submission Time
Task D - 11
User mayumini
Language Ruby (2.3.3)
Score 0
Code Size 855 Byte
Status
Exec Time 2108 ms
Memory 8068 KB

Compile Error

./Main.rb:2: warning: possibly useless use of a variable in void context
./Main.rb:3: warning: possibly useless use of a variable in void context
./Main.rb:4: warning: possibly useless use of a variable in void context

Test Cases

Set Name Score / Max Score Test Cases
Sample 0 / 0 sample1.txt, sample2.txt, sample3.txt
All 0 / 600 1.txt, mx.txt, rnd_0.txt, rnd_1.txt, rnd_2.txt, rnd_3.txt, rnd_4.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
1.txt
mx.txt
rnd_0.txt
rnd_1.txt
rnd_2.txt
rnd_3.txt
rnd_4.txt
sample1.txt 7 ms 1788 KB
sample2.txt 7 ms 1788 KB
sample3.txt 7 ms 1788 KB