結果

問題 No.5021 Addition Pyramid
ユーザー aoki1980taichi
提出日時 2025-02-25 22:02:04
言語 Ruby
(3.4.1)
結果
AC  
実行時間 1,809 ms / 2,000 ms
コード長 2,637 bytes
コンパイル時間 655 ms
コンパイル使用メモリ 7,808 KB
実行使用メモリ 15,616 KB
スコア 16,206,231
最終ジャッジ日時 2025-02-25 22:04:08
合計ジャッジ時間 94,687 ms
ジャッジサーバーID
(参考情報)
judge1 / judge6
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 50
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

#https://yukicoder.me/contests/532
 
#MOD_N=998244353 
srand(1234)
MOD_N=10**8
#V=5-1
#n,m,h = gets.chomp.split().map{_1.to_i}
n =gets.chomp.to_i
#n =gets.chomp.to_i
#raise "unexpected size n #{n}" unless n==600

#def d(v1,v2) = [(v1-v2).abs,MOD_N-(v1-v2).abs].min
def d(v1,v2) = MOD_N/2-((v1-v2).abs-MOD_N/2).abs

a=[]
n.times{
  a <<  gets.chomp.split(' ').map{_1.to_i}
  raise "unexpected size" unless a.last.size == a.size
}
def ppp(s)
#  pp s;  STDOUT.flush
end


class Cl
  attr_accessor :a
  attr_accessor :b
  def initialize(a)
      @a=a
  end
end
def next_(arr)
  (0...arr.size-1).each{
    arr[_1]+=arr[_1+1]
    arr[_1]%=MOD_N
  }
  arr.pop
end
def calc_total_d(arr,a)
  max_=0
  (0...a.size).each{|row|
    a_=a[a.size-row-1]
    raise "unexpected arr.size=#{arr.size}, a.size=#{a_.size}" unless arr.size==a_.size
    (0...a_.size).each{
      dd=d(a_[_1],arr[_1])
      max_ = dd if max_<dd
    }
    next_(arr)
  }
  return max_
end
def solve(a)
  #arr=a.last.clone
  arrset=[]
  3000.times{
    arr=[]
    a.size.times{arr << rand(MOD_N)}
    arrset << [calc_total_d(arr.clone,a),arr.clone]
  }
  arrset.sort!
#  calc_total_d(arr.clone,a)
#pp arrset

  arr= arrset.first[1]
  $stderr.puts "# #{5*(10**7) - calc_total_d(arr.clone,a)}"
  return arr.join(' ') 
end
puts solve(a)
STDOUT.flush



#for file in in/test_00*.txt; do ; python3 tester_local.py $file =(time ruby -W2 ../yukicoder532.rb < $file);done
#rm -rf results; mkdir results; cd in; for file in test_00*.txt; do time ruby ../../yukicoder532.rb < $file > stdout."$file" ; python3 ../tester_local.py  $file stdout."$file" >> ../stdout; done; cd ..; grep score stdout>results/scores.txt; mv in/stdout.* results; mv stdout results; cp ../yukicoder532.rb results; cp -r results "results-$(date +"%Y%m%d_%H%M")"

# for file in in/000*.txt; do ; ruby -W2 ../ahc042.rb < $file > ../out.txt ; cargo run -r --bin vis $file ../out.txt 2>/dev/null; done;

# cargo run -r --bin vis sample_input.txt =(ruby -W2 ../ahc040.rb < sample_input.txt) 2> /dev/null

# mkdir results
# time rm stderr; for file in in/000*.txt; do cargo run -r --bin tester ruby ../ahc040.rb < $file > "$file".stdout 2>> stderr; done; grep Score stderr>results/scores.txt; cat in/*.txt.stdout | grep CNT > results/analysis.txt; cp -r results "results-$(date +"%Y%m%d_%H%M")"


# rm -rf results; mkdir results; cd in; for file in 000*.txt; do time cargo run -r --bin tester ruby ../../ahc040.rb < $file > stdout."$file" 2>> ../stderr; done; cd ..; grep Score stderr>results/scores.txt; mv in/stdout.* results; mv stderr results; cp ../ahc040.rb results; cp -r results "results-$(date +"%Y%m%d_%H%M")"

0