From b3e251018e2a93bb8a3c9c26d89f3e3046cc8543 Mon Sep 17 00:00:00 2001 From: nomeaning Date: Wed, 7 Dec 2011 01:10:36 +0900 Subject: [PATCH] Add Files --- 112B.rb | 13 +++++++++++++ 11B.rb | 9 +++++++++ 122A.rb | 6 ++++++ 124A.rb | 10 ++++++++++ 124B.rb | 28 ++++++++++++++++++++++++++++ 125A.rb | 1 + 125B.rb | 14 ++++++++++++++ 127A.rb | 10 ++++++++++ 127B.rb | 8 ++++++++ 129A.rb | 11 +++++++++++ 131A.rb | 8 ++++++++ 131B.rb | 12 ++++++++++++ 131C.rb | 15 +++++++++++++++ 133A.rb | 1 + 133B.rb | 8 ++++++++ 134A.rb | 12 ++++++++++++ 134B.rb | 25 +++++++++++++++++++++++++ 54A.rb | 1 + 8A.rb | 10 +++++++--- 19 files changed, 199 insertions(+), 3 deletions(-) create mode 100644 112B.rb create mode 100644 11B.rb create mode 100644 122A.rb create mode 100644 124A.rb create mode 100644 124B.rb create mode 100644 125A.rb create mode 100644 125B.rb create mode 100644 127A.rb create mode 100644 127B.rb create mode 100644 129A.rb create mode 100644 131A.rb create mode 100644 131B.rb create mode 100644 131C.rb create mode 100644 133A.rb create mode 100644 133B.rb create mode 100644 134A.rb create mode 100644 134B.rb diff --git a/112B.rb b/112B.rb new file mode 100644 index 0000000..b490f10 --- /dev/null +++ b/112B.rb @@ -0,0 +1,13 @@ +=gets +s1="4" +r1=s.scan(s1).size +s2="7" +r2=s.scan(s2).size +if [r1,r2].max==0 then + puts "-1" + elsif r1>=r2 then + puts "4" + else + puts "7" + end + diff --git a/11B.rb b/11B.rb new file mode 100644 index 0000000..3e2be68 --- /dev/null +++ b/11B.rb @@ -0,0 +1,9 @@ +n=gets.to_i.abs +i=1 +k=0 +while k0 + k+=i + i+=1 +end +#p k +puts i-1 diff --git a/122A.rb b/122A.rb new file mode 100644 index 0000000..32e87e5 --- /dev/null +++ b/122A.rb @@ -0,0 +1,6 @@ +n=gets.to_i +lucky=[4,7,44,47,74,77,444,447,474,477,744,747,777,4444,4447,4474,4477,4744,4747,4774,4777,7444,7447,7474,7477,7744,7747,7774,7777] +lucky.each{|i| + if n%i==0 then puts "YES";exit; end +} +puts "NO" diff --git a/124A.rb b/124A.rb new file mode 100644 index 0000000..1e9af44 --- /dev/null +++ b/124A.rb @@ -0,0 +1,10 @@ +n,a,b=gets.split.map(&:to_i) +ans=0 +for i in 1..n + if i-1>=a then + if n-i<=b then + ans+=1 + end + end +end +p ans diff --git a/124B.rb b/124B.rb new file mode 100644 index 0000000..5e1d3f2 --- /dev/null +++ b/124B.rb @@ -0,0 +1,28 @@ +n,k=gets.split.map(&:to_i); +p=[];input=[]; +n.times{ + s=gets.split[0] + tmp=[] + k.times{|i| + tmp.push(s[i].to_i) + } + input.push(tmp) +} +ans=[] +k.times{|i| + p.push(i); +} +p.permutation{|a| + t=[] + input.each{|i| + tmp=0 + k.times{|j| + tmp*=10 + tmp+=i[a[j]] + } + t.push(tmp) + } + ans.push(t.max-t.min) +} +p ans.min + diff --git a/125A.rb b/125A.rb new file mode 100644 index 0000000..790c082 --- /dev/null +++ b/125A.rb @@ -0,0 +1 @@ +puts "#{(n=(gets.to_i/3.0+0.5).to_i)/12} #{n%12}" diff --git a/125B.rb b/125B.rb new file mode 100644 index 0000000..c3098de --- /dev/null +++ b/125B.rb @@ -0,0 +1,14 @@ +str=gets +input=str[1..str.length-3].split("><") +depth=0 +input.each{|a| + if a[0]=="/" then + depth-=1 + print " "*depth + else + print " "*depth + depth+=1 + end + print "<"+a+">\n" +} + diff --git a/127A.rb b/127A.rb new file mode 100644 index 0000000..6f60321 --- /dev/null +++ b/127A.rb @@ -0,0 +1,10 @@ +n,k=gets.split.map(&:to_i) +point=[] +for i in 1..n + point.push(gets.split.map(&:to_i)) +end +res=0.0 +for i in 1..n-1 + res+=Math::sqrt((point[i-1][0]-point[i][0])**2+(point[i-1][1]-point[i][1])**2) +end +p res/50*k diff --git a/127B.rb b/127B.rb new file mode 100644 index 0000000..b21b4be --- /dev/null +++ b/127B.rb @@ -0,0 +1,8 @@ +n=gets.to_i +a=gets.split.map(&:to_i) +cnt=Hash.new +cnt.default=0 +a.each{|i| cnt[i]+=1 } +ans=0 +1.upto(100){|i| ans+=cnt[i]/2 } +p ans/2 diff --git a/129A.rb b/129A.rb new file mode 100644 index 0000000..d338bb8 --- /dev/null +++ b/129A.rb @@ -0,0 +1,11 @@ +n=gets.to_i +a=gets.split.map(&:to_i) +o=e=0 +a.each{|i| + if i % 2==0 then e+=1 else o+=1 end +} +if o % 2 == 0 then + puts e +else + puts o +end diff --git a/131A.rb b/131A.rb new file mode 100644 index 0000000..2fcfc3e --- /dev/null +++ b/131A.rb @@ -0,0 +1,8 @@ +str=gets.split[0] +if str.upcase==str then + puts str.downcase +elsif str[0].downcase+str[1..str.length-1].upcase==str then + puts str[0].upcase+str[1..str.length-1].downcase +else + puts str +end diff --git a/131B.rb b/131B.rb new file mode 100644 index 0000000..a1d7aa3 --- /dev/null +++ b/131B.rb @@ -0,0 +1,12 @@ +n=gets +t=gets.split.map(&:to_i) +cnt=Hash.new +cnt.default=0 +t.each{|i| + cnt[i]+=1 +} +ans=cnt[0]*(cnt[0]-1)/2 +for i in 1..10 + ans+=cnt[i]*cnt[-i] +end +p ans diff --git a/131C.rb b/131C.rb new file mode 100644 index 0000000..fd90610 --- /dev/null +++ b/131C.rb @@ -0,0 +1,15 @@ +n,m,t=gets.split.map(&:to_i) +def fact(i) + if i<=1 then return 1 end + return i*fact(i-1) +end +def comb(n,k) + return fact(n)/fact(k)/fact(n-k) +end +ans=0 +for d in 4..n + j=t-d + if j==0 then next end + ans+=comb(n,d)*comb(m,j) +end +p ans diff --git a/133A.rb b/133A.rb new file mode 100644 index 0000000..31cd8ec --- /dev/null +++ b/133A.rb @@ -0,0 +1 @@ +puts /[HQ9]/ =~ gets.split[0] ? "YES" : "NO" diff --git a/133B.rb b/133B.rb new file mode 100644 index 0000000..db0de73 --- /dev/null +++ b/133B.rb @@ -0,0 +1,8 @@ +hash={"+"=>"1010",">"=>"1000","<"=>"1001","-"=>"1011","."=>"1100",","=>"1101","["=>"1110","]"=>"1111"} +program=gets.split[0] +ans="" +0.upto(program.length-1){|i| + ans+=hash[program[i]] +} +p ans.to_i(2)%1000003 + diff --git a/134A.rb b/134A.rb new file mode 100644 index 0000000..f329032 --- /dev/null +++ b/134A.rb @@ -0,0 +1,12 @@ +sum=gets.to_i*0 +a=gets.split.map(&:to_i) +a.each{|s| sum+=s} +ans=[] +a.length.times{|i| + if a[i]*(a.length-1)==(sum-a[i]) + ans.push(i) + end +} +p ans.length +ans.each{|i| print "#{i+1} "} +puts diff --git a/134B.rb b/134B.rb new file mode 100644 index 0000000..0ff4460 --- /dev/null +++ b/134B.rb @@ -0,0 +1,25 @@ +def solve(n,k) + big=n;small=k + a=0 + while big!=1||small!=1 + t=big/small + if big%small==0 then t-=1 end + a+=t + big-=t*small + if big=k then back=i ans+=1 diff --git a/8A.rb b/8A.rb index 165f84b..7da9127 100644 --- a/8A.rb +++ b/8A.rb @@ -1,9 +1,13 @@ def solve(data) - if data.match( eval("/[a-z]*"+$a+"[a-z]*"+$b+"[a-z]*/") ) != nil then - return true - else + q=data.index($a) + if q==nil then + return false + end + r=data.rindex($b) + if r==nil then return false end + return q+$a.length<=r end input=gets.split[0]