結果
問題 | No.887 Collatz |
ユーザー |
![]() |
提出日時 | 2019-09-20 21:40:44 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 2,875 bytes |
コンパイル時間 | 1,594 ms |
コンパイル使用メモリ | 167,320 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-14 16:56:52 |
合計ジャッジ時間 | 2,575 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
#include "bits/stdc++.h"// Begin {{{using namespace std;#define all(x) x.begin(), x.end()#define rep(i, n) for (i64 i = 0, i##_limit = (n); i < i##_limit; ++i)#define reps(i, b, e) for (i64 i = (b), i##_limit = (e); i <= i##_limit; ++i)#define repr(i, b, e) for (i64 i = (b), i##_limit = (e); i >= i##_limit; --i)#define var(Type, ...) Type __VA_ARGS__; input(__VA_ARGS__)using i64 = int_fast64_t;using pii = pair<i64, i64>;template <class T>using MaxHeap = priority_queue<T>;template <class T>using MinHeap = priority_queue<T, vector<T>, greater<>>;template <class A, class B> inline bool chmax(A &a, const B &b) { return b > a && (a = b, true); }template <class A, class B> inline bool chmin(A &a, const B &b) { return b < a && (a = b, true); }inline i64 sigma(i64 n) { return n * (1 + n) >> 1; }inline i64 updiv(i64 n, i64 d) { return (n + d - 1) / d; }constexpr int INF = 0x3f3f3f3f;constexpr i64 LINF = 0x3f3f3f3f3f3f3f3fLL;constexpr int MOD = int(1e9) + 7;#ifndef DEBUG#define dump(...)#endifinline void input() {}template <class Head, class... Tail>inline void input(Head&& head, Tail&&... tail) {cin >> head;input(forward<Tail>(tail)...);}inline void outs() { cout << "\n"; }template <class Head, class... Tail>inline void outs(Head&& head, Tail&&... tail) {cout << head << (sizeof...(tail) ? " " : "");outs(forward<Tail>(tail)...);}template <class T>inline void outs(vector<T> &vec) { for (auto &e : vec) cout << e << " \n"[&e == &vec.back()]; }template <class T>inline void outs(vector<vector<T>> &df) { for (auto &vec : df) outs(vec); }inline void outl() { cout << "\n"; }template <class Head, class... Tail>inline void outl(Head&& head, Tail&&... tail) {cout << head << (sizeof...(tail) ? "\n" : "");outl(forward<Tail>(tail)...);}template <class T>inline void outl(vector<T> &vec) { for (auto &e : vec) cout << e << "\n"; }inline void outn() {}template <class Head, class... Tail>inline void outn(Head&& head, Tail&&... tail) {cout << head;outn(forward<Tail>(tail)...);}template <class T>inline void outn(vector<T> &vec) { for (auto &e : vec) cout << e; }template <class T>inline vector<T> make_v(const T &initvalue, size_t sz) {return vector<T>(sz, initvalue);}template <class T, class... Args>inline auto make_v(const T &initvalue, size_t sz, Args... args) {return vector<decltype(make_v<T>(initvalue, args...))>(sz, make_v<T>(initvalue, args...));}// }}} Endsigned main() {ios::sync_with_stdio(false);cin.tie(nullptr);var(int, n);i64 maxv = n;i64 i = 0;while (true) {if (n == 1) {outl(i, maxv);return 0;}if (n % 2) {n = 3 * n + 1;} else {n = n / 2;}chmax(maxv, n);++i;}return 0;}