結果

問題 No.3557 KCPC or KUPC 2
コンテスト
ユーザー ID 21712
提出日時 2026-05-29 19:52:48
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
WA  
実行時間 -
コード長 1,343 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 12,374 ms
コンパイル使用メモリ 285,700 KB
実行使用メモリ 7,976 KB
最終ジャッジ日時 2026-05-29 19:53:07
合計ジャッジ時間 16,430 ms
ジャッジサーバーID
(参考情報)
judge4_0 / judge3_1
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点1 10 % AC * 22 WA * 8
部分点2 40 % AC * 15 WA * 15
部分点3 50 % AC * 20 WA * 10
合計 0 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import . "fmt"
import . "sort"

func main() {
	var n,a,b,c,d,e,f int
	Scan(&n,&a,&b,&c,&d,&e,&f)

	r1 := Search(n/c+2, func(r int) bool {
		return (r+1)*b*a + b*c*r*(r+1)/2 >= n
	})
	gr1 := (r1+1)*b*a + b*c*r1*(r1+1)/2
	t1 := Search(b+2, func(t int) bool {
		k := r1*b + t
		hk := (k-r1*b) * (a + b*r1)
		return gr1 - (b*a + b*c*r1) + hk >= n
	})
	k1 := r1*b + t1
	println(k1)

	r2 := Search(n/f+2, func(r int) bool {
		return (r+1)*e*d + e*f*r*(r+1)/2 >= n
	})
	gr2 := (r2+1)*e*d + e*f*r2*(r2+1)/2
	t2 := Search(e+2, func(t int) bool {
		k := r2*e + t
		hk := (k-r2*e) * (d + e*r2)
		return gr2 - (e*d + e*f*r2) + hk >= n
	})
	k2 := r2*e + t2
	println(k2)
	
	switch {
		case k1 < k2:
			Println("KCPC")
		case k1 == k2:
			Println("Same")
		case k1 > k2:
			Println("KUPC")
	}
}

/*
考察

え、むず

f(K) = Σ{i=1..K}(x + z * floor((i - 1)/ y))

サンプル1からすると y日間 同じ日給が続くぽい
y日ごとにまとめると
g(R) = Σ{p=0..R}(y*x + y*z*p)
     = (R+1)*y*x + y*z*Σ{p=0..R}(p)
     = (R+1)*y*x + y*z*R*(R+1)/2
g(R)は単調増加なので g(R) >= N で Rを二分探索
R = floor((rmin-1)/y) = floor((K-1)/y) = floor((rmax-1)/y)
なので
rmin = R * y
f(K) = g(R) - (y*x + y*z*R) + h(K)
h(K) = Σ{i=rmin..K}(x + z * R)
      = (K-rmin) * (x + z * R)
からf(K) >= N で K を二分探索


*/
0