結果

問題 No.3389 k-Days Later
コンテスト
ユーザー forest3
提出日時 2025-12-13 01:34:15
言語 C++14
(gcc 13.3.0 + boost 1.89.0)
結果
AC  
実行時間 506 ms / 2,000 ms
コード長 640 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,507 ms
コンパイル使用メモリ 166,268 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-12-13 01:34:36
合計ジャッジ時間 20,395 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;

#define rep(i, a, b) for (int i = a; i < b; i++)
using ll = long long;

int main(){
	int n;
	cin >> n;
	vector<int> d(n);
	rep(i, 0, n) cin >> d[i];
	vector<ll> s(n + 1);
	rep(i, 0, n) s[i + 1] = s[i] + d[i];
	int q;
	cin >> q;
	rep(qi, 0, q) {
		ll _y, _m, _d, _k;
		cin >> _y >> _m >> _d >> _k;
		__int128 y = _y, m = _m, d = _d, k = _k;
		__int128 t = (y - 1) * s[n] + s[m - 1] + d + k - 1;
		__int128 ay = t / s[n] + 1;
		t -= (ay - 1) * s[n];
		int am = upper_bound(s.begin(), s.end(), t) - s.begin();
		int ad = t - s[am - 1] + 1;
		cout << ll(ay) << " " << am << " " << ad << endl;
	}
}
0