結果
| 問題 | No.3448 ABBBBBBBBC |
| コンテスト | |
| ユーザー |
SnowBeenDiding
|
| 提出日時 | 2026-02-20 22:22:57 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 55 ms / 2,000 ms |
| コード長 | 1,163 bytes |
| 記録 | |
| コンパイル時間 | 10,041 ms |
| コンパイル使用メモリ | 420,692 KB |
| 実行使用メモリ | 7,844 KB |
| 最終ジャッジ日時 | 2026-02-20 22:23:13 |
| 合計ジャッジ時間 | 10,651 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 4 |
ソースコード
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#include <atcoder/all>
#define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++)
using namespace atcoder;
using namespace std;
typedef long long ll;
int f(int c0, int c1, int n) {
int ret = n;
if (c0 > c1) swap(c0, c1);
if (ret >= c0) ret++;
if (ret >= c1) ret++;
return ret;
}
void solve() {
ll n, k;
cin >> n >> k;
k--;
int c0 = k / (n * 72) + 1;
k %= n * 72;
int c1 = k / (n * 8);
if (c1 >= c0) c1++;
k %= n * 8;
int p = c1;
if (c0 < c1) p--;
int q = 8 - p;
ll pcnt = n * p, lcnt = n * q;
ll len, cl;
if (k < pcnt) {
len = k / p + 1;
cl = k % p;
} else {
ll nk = k - pcnt;
len = n + nk / q;
cl = nk % q + p;
}
if (len >= n) len = n - (len - n);
cl = f(c0, c1, cl);
len += 2;
cout << len << ' ' << c0 << ' ' << c1 << ' ' << cl << '\n';
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout << fixed << setprecision(15);
int t;
cin >> t;
while (t--) solve();
}
SnowBeenDiding