Submission #1397752


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]
    @@factinv[max]=@@fact[max].pow({},mod-2)%mod
    (max-1).downto(1){|i|
      @@factinv[i]=@@factinv[i+1]*(i+1)%mod
    }
  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)
cnt=[0]*(n+1)
dup=a.find{|i|cnt[i]+=1;cnt[i]>1}
l,r=[a.index(dup),a.rindex(dup)]
Integer.init_fact(100001,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 600
Code Size 837 Byte
Status
Exec Time 320 ms
Memory 14988 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 600 / 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 320 ms 14988 KB
mx.txt 264 ms 14932 KB
rnd_0.txt 264 ms 13912 KB
rnd_1.txt 221 ms 13196 KB
rnd_2.txt 115 ms 6084 KB
rnd_3.txt 106 ms 5956 KB
rnd_4.txt 126 ms 6648 KB
sample1.txt 61 ms 3528 KB
sample2.txt 60 ms 3528 KB
sample3.txt 60 ms 3528 KB