結果
| 問題 | No.3389 k-Days Later |
| コンテスト | |
| ユーザー |
biotea
|
| 提出日時 | 2025-12-02 22:32:43 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 532 ms / 2,000 ms |
| コード長 | 928 bytes |
| 記録 | |
| コンパイル時間 | 3,044 ms |
| コンパイル使用メモリ | 198,116 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2025-12-02 22:33:11 |
| 合計ジャッジ時間 | 26,620 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 28 |
ソースコード
// #include <atcoder/all>
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr ll inf = (1LL << 61);
ll dx[8] = {0, 1, 0, -1, 1, -1, -1, 1};
ll dy[8] = {-1, 0, 1, 0, 1, 1, -1, -1};
#define rep(i, n) for (ll i = 0; i < (ll)(n); ++i)
#define REP(i, init, n) for (ll i = (ll)init; i < (ll)(n); ++i)
int main() {
ll n;
cin >> n;
vector<ll> d(n);
vector<ll> s(2 * n + 1, 0);
rep(i, n) cin >> d[i];
rep(i, n) s[i + 1] = s[i] + d[i];
rep(i, n) s[i + n + 1] = s[i + n] + d[i];
ll sum = 0;
rep(i, n) sum += d[i];
ll q;
cin >> q;
rep(_, q) {
ll y, m, D, k;
cin >> y >> m >> D >> k;
m--;
ll ay = y + k / sum;
ll rem = k % sum;
auto to = lower_bound(s.begin(), s.end(), s[m] + D + rem) - s.begin() - 1;
ll am = to % n;
ll ad = -s[to] + (s[m] + D + rem);
if (am < m || (am == m && ad < D)) ++ay;
cout << ay << " " << am + 1 << " " << ad << "\n";
}
}
biotea