秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1150112023-10-25 10:18:22sitiniEcpp54/54AC8

#if !__INCLUDE_LEVEL__
#include __FILE__

vector<pair<long long, long long> > prime_factorize(long long N) {
    vector<pair<long long, long long> > res;
    for (long long a = 2; a * a <= N; ++a) {
        if (N % a != 0) continue;
        long long ex = 0; // 指数

        // 割れる限り割り続ける
        while (N % a == 0) {
            ++ex;
            N /= a;
        }

        // その結果を push
        res.push_back({a, ex});
    }

    // 最後に残った数について
    if (N != 1) res.push_back({N, 1});
    return res;
}

int main() {
    ll N; cin >> N;
    const auto &A = prime_factorize(N);
    vll B;
    ll p3 = 0, p19 = 0;
    for (auto p : A) {
        if (p.fi==3) p3+=p.se;
        if (p.fi==19) p19+=p.se;
    }
    for (auto p : A) {
        for (int i = 0; i < ((p.fi==3||p.fi==19)?p.se-min(p3,p19):p.se); i++) B.pb(p.fi);
    }
    if (min(p3,p19)>0) {
        for (int i = 0; i < min(p3,p19); i++) B.pb(57);
    }
    sort(all(B));
    cout << B << endl;
}
#else

// ↓TEMPLATE↓
#include <bits/stdc++.h>
using namespace std;
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif

#pragma GCC target("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
struct Fast {Fast() {std::cin.tie(0); ios::sync_with_stdio(false);}} fast;
#define endl '\n'
//cout << fixed << setprecision(15);
using ll = long long;
using ld = long double;
using vi = vector<int>;
using vll = vector<long long>;
using vvi = vector<vi>;
using vvll = vector<vll>;
using vs = vector<string>;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using Graph = vector<vector<int>>;
constexpr int mod = 1e9 + 7;
constexpr int Mod = 998244353;
constexpr int INF = 1e9;
constexpr ll LINF = 1e18;
const vector<int> dx = {1, 0, -1, 0, 1, -1, -1, 1};
const vector<int> dy = {0, 1, 0, -1, 1, 1, -1, -1};
template<class T> bool chmin(T &a, T b) {if(a>b) {a=b;return true;}return false;}
template<class T> bool chmax(T &a, T b) {if(a<b) {a=b;return true;}return false;}
template <class T> T gcd(T a, T b) {if (b == 0)return a; else return gcd(b, a % b);}
template <class T> inline T lcm(T a, T b) {return (a * b) / gcd(a, b);}
template<class T> istream &operator>>(istream &is, vector<T> &v) {for (auto &x : v){is >> x;}return is;}
template<class T> ostream &operator<<(ostream &os, vector<T> &v) {for(int i=0;i<v.size();i++){os<<v[i]<<(i+1==v.size()?"\n":" ");}return os;}
template<class... T> void input(T&... a){(cin >> ... >> a);}
template<class... T> constexpr auto min(T... a){return min(initializer_list<common_type_t<T...>>{a...});}
template<class... T> constexpr auto max(T... a){return max(initializer_list<common_type_t<T...>>{a...});}
template<class V, class H> void resize(vector<V>& v,const H head){v.resize(head);}
template<class V, class H, class... T> void resize(vector<V>& vec,const H& head,const T... tail){vec.resize(head);for(auto& v:vec)resize(v, tail...);}
template<class H> void input_set(istream& is,const int idx,vector<H>& head){is>>head[idx];}
template<class H,class... T>void input_set(istream& is,const int idx,vector<H>& head,T&... tail){input_set(is>>head[idx],idx,tail...);}
template<class H,class... T>void input_set(istream& is,vector<H>& head,T&... tail){for(int i=0;i<head.size();i++)input_set(is,i,head,tail...);}
template<class H,class... T>void input_set(vector<H>& head,T&... tail){input_set(cin,head,tail...);}
//#define int long long
#define pb emplace_back
#define mp make_pair
#define PQ priority_queue<int>
#define PQG priority_queue<int,vector<int>,greater<int>>
#define all(a) (a).begin(),(a).end()
#define fi first
#define se second
#define itn int
#define YES(bool) cout << ((bool) ? "YES" : "NO") << endl
#define yes(bool) cout << ((bool) ? "yes" : "no") << endl
#define Yes(bool) cout << ((bool) ? "Yes" : "No") << endl
#define POSSIBLE(bool) cout << ((bool) ? "POSSIBLE" : "IMPOSSIBLE") << endl
#define Possible(bool) cout << ((bool) ? "Possible" : "Impossible") << endl
#define INT(...) int __VA_ARGS__; input(__VA_ARGS__)
#define LL(...) ll __VA_ARGS__; input(__VA_ARGS__)
#define STR(...) string __VA_ARGS__; input(__VA_ARGS__)
#define DBL(...) double __VA_ARGS__; input(__VA_ARGS__)
#define Sort(a) sort(all(a))
#define Rev(a) reverse(all(a))
#define Uniq(a) sort(all(a));a.erase(unique(all(a)),end(a))
// ↑TEMPLATE↑
#endif
C++

sample1.txt AC 2
sample2.txt AC 2
sample3.txt AC 3
sample4.txt AC 6
case1.txt AC 7
case2.txt AC 7
case3.txt AC 7
case4.txt AC 7
case5.txt AC 7
case6.txt AC 7
case7.txt AC 7
case8.txt AC 7
case9.txt AC 7
case10.txt AC 7
case11.txt AC 7
case12.txt AC 7
case13.txt AC 7
case14.txt AC 7
case15.txt AC 7
case16.txt AC 7
case17.txt AC 6
case18.txt AC 7
case19.txt AC 7
case20.txt AC 6
case21.txt AC 7
case22.txt AC 7
case23.txt AC 7
case24.txt AC 7
case25.txt AC 7
case26.txt AC 7
case27.txt AC 7
case28.txt AC 6
case29.txt AC 7
case30.txt AC 7
case31.txt AC 7
case32.txt AC 7
case33.txt AC 7
case34.txt AC 7
case35.txt AC 7
case36.txt AC 7
case37.txt AC 7
case38.txt AC 7
case39.txt AC 7
case40.txt AC 7
case41.txt AC 7
case42.txt AC 7
case43.txt AC 7
case44.txt AC 7
case45.txt AC 7
case46.txt AC 7
case47.txt AC 7
case48.txt AC 7
case49.txt AC 8
case50.txt AC 7
8 AC8 AC