結果

問題 No.3389 k-Days Later
コンテスト
ユーザー ID 21712
提出日時 2025-12-01 03:26:59
言語 Go
(1.23.4)
結果
WA  
実行時間 -
コード長 819 bytes
コンパイル時間 13,225 ms
コンパイル使用メモリ 234,084 KB
実行使用メモリ 8,200 KB
最終ジャッジ日時 2025-12-01 03:27:32
合計ジャッジ時間 28,548 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 8 WA * 20
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import . "fmt"
import . "os"
import bf "bufio"

func main() {
	rd := bf.NewReader(Stdin)
	wr := bf.NewWriter(Stdout)
	defer wr.Flush()
	var n int
	Fscan(rd, &n)
	ds := make([]int, n)
	sum := make([]int, n+1)
	for i := range ds {
		Fscan(rd, &ds[i])
		sum[i+1] = sum[i]+ds[i]
	}
	var q int
	Fscan(rd, &q)
	for ; q > 0; q-- {
		var y,m,d,k int
		Fscan(rd, &y, &m, &d, &k)
		y += k / sum[n]
		k = k % sum[n]
		if k <= ds[m-1]-d {
			Fprintln(wr, y, m, d+k)
			continue
		}
		r := sum[n]-sum[m]+ds[m-1]-d
		if k > r {
			k -= r+1
			y++
			m, d = 1, 1
		} else {
			k -= ds[m-1]-d+1
			m++
			d = 1
		}
		p := 0
		for i := 15; i >= 0; i-- {
			t := p | (1 << i)
			if t > n {
				continue
			}
			if sum[t]-sum[m-1]-1 <= k {
				p = t
			}
		}
		d += k-(sum[p]-sum[m-1])
		m = p+1
		Fprintln(wr, y, m, d)
	}
}
0