/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 536.0 KiB
#2 Accepted 3ms 532.0 KiB
#3 Time Exceeded ≥1100ms ≥568.0 KiB
#4 Time Exceeded ≥1099ms ≥764.0 KiB

Code

#include "bits/stdc++.h"

// clang-format off
using namespace std;
using ll = long long;
template <class T> using vec = vector<T>;
template <class T> using vvec = vec<vec<T>>;
template <class T> using vvvec = vec<vvec<T>>;
template <class T, size_t SZ> using vac = vec<array<T, SZ>>;
template <class T, size_t SZ> using vvac = vec<vac<T, SZ>>;
template <class T> using pqueue = priority_queue<T, vec<T>>;
template <class T> using pqueue_min = priority_queue<T, vec<T>, greater<T>>;

#define sz(x) int((x).size())
#define all(x) begin(x), end(x)
#define rall(x) x.rbegin(), x.rend()
#define sor(x) sort(all(x))
#define pb push_back
#define F_OR(i, a, b, s) for (int i=(a); (s)>0?i<(int)(b):i>(int)(b); i+=(s))
#define F_OR1(e) F_OR(i, 0, e, 1)
#define F_OR2(i, e) F_OR(i, 0, e, 1)
#define F_OR3(i, b, e) F_OR(i, b, e, 1)
#define F_OR4(i, b, e, s) F_OR(i, b, e, s)
#define GET5(a, b, c, d, e, ...) e
#define F_ORC(...) GET5(__VA_ARGS__, F_OR4, F_OR3, F_OR2, F_OR1)
#define FOR(...) F_ORC(__VA_ARGS__)(__VA_ARGS__)
#define E_ACH2(x, a) for (auto& x: a)
#define E_ACH3(x, y, a) for (auto& [x, y]: a)
#define E_ACH4(x, y, z, a) for (auto& [x, y, z]: a)
#define E_ACHC(...) GET5(__VA_ARGS__, E_ACH4, E_ACH3, E_ACH2)
#define EACH(...) E_ACHC(__VA_ARGS__)(__VA_ARGS__)
#define SUBMASKS(t, s) for (ll t = (s); t >= 0; t = (t == 0 ? -1 : (t - 1) & (s)))
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))

template <class T> bool umin(T &a, const T &b) { return b < a ? a = b, 1 : 0; }
template <class T> bool umax(T &a, const T &b) { return a < b ? a = b, 1 : 0; }
template <class T, size_t SZ> istream &operator>>(istream &s, array<T, SZ>& v) { FOR(sz(v)) s >> v[i]; return s; }
template <class T> istream &operator>>(istream &s, vec<T>& v) { FOR(sz(v)) s >> v[i]; return s; }
template <class T> ostream &operator<<(ostream &s, vec<T>& v) { FOR(sz(v)) s << (i?" ":"") << v[i]; return s; }
template <class T> ostream &operator<<(ostream &s, const vec<T>& v) { FOR(sz(v)) s << (i?" ":"") << v[i]; return s; }
template <class T1, class T2> ostream &operator<<(ostream &s, const pair<T1, T2>& v) { s << v.first << " " << v.second; return s;}
 
template<class A> void write(A x) { cout << x; }
template<class H, class... T> void write(const H& h, const T&... t) { 
  write(h); write(t...); }
void print() { write("\n"); }
template<class H, class... T> void print(const H& h, const T&... t) { 
  write(h); if (sizeof...(t)) write(" "); print(t...); }
 
void decrement() {}
template <class T, size_t SZ> void decrement(vec<array<T, SZ>> &v) { EACH(row, v) EACH(x, row) --x; }
template <class T> void decrement(vec<vec<T>> &v) { EACH(row, v) EACH(x, row) --x; }
template <class T> void decrement(vec<T> &v) { EACH(x, v) --x; }
template <class T, class... U> void decrement(T &t, U &...u) { --t; decrement(u...); }
 
template <class T> void read(T& x) { cin >> x; }
template<class T, class... U> void read(T &t, U &...u) { read(t); read(u...); }
#define ints(...) int __VA_ARGS__; read(__VA_ARGS__);
#define int1(...) ints(__VA_ARGS__); decrement(__VA_ARGS__);
#define vin(n, a) vec<int> a((n)); cin >> a;
#define vain(n, m, a) vec<array<int, (m)>> a((n)); cin >> a;
#define graphin(n, m, adj) vvec<int> adj(n); FOR(m) {int1(u, v); adj[u].pb(v); adj[v].pb(u); }
#define wgraphin(n, m, adj) vvac<int, 2> adj(n); FOR(m) {int1(u, v); ints(w); adj[u].pb({v,w}); adj[v].pb({u,w}); }

// vec<array<int, 2>> dirs = {{-1,2},{1,2},{-1,-2},{1,-2},{2,-1},{2,1},{-2,-1},{-2,1}};

template<int MOD>
struct modint {
    int v;
    modint(long long _v = 0) {
        long long x = _v % MOD;
        if (x < 0) x += MOD;
        v = int(x);
    }
    modint& operator+=(const modint& o) {
        v += o.v;
        if (v >= MOD) v -= MOD;
        return *this;
    }
    modint& operator-=(const modint& o) {
        v -= o.v;
        if (v < 0) v += MOD;
        return *this;
    }
    modint& operator*=(const modint& o) {
        v = int((long long)v * o.v % MOD);
        return *this;
    }
    friend modint pow(modint a, long long e) {
        modint res(1);
        while (e > 0) {
            if (e & 1) res *= a;
            a *= a;
            e >>= 1;
        }
        return res;
    }
    // requires MOD prime if used
    friend modint inv(const modint& a) {
        return power(a, MOD - 2);
    }
    modint& operator/=(const modint& o) {
        return *this *= inv(o);
    }
    friend modint operator+(modint a, const modint& b) { return a += b; }
    friend modint operator-(modint a, const modint& b) { return a -= b; }
    friend modint operator*(modint a, const modint& b) { return a *= b; }
    friend modint operator/(modint a, const modint& b) { return a /= b; }
    modint operator-() const { return modint(-v); }
    bool operator==(const modint& o) const { return v == o.v; }
    bool operator!=(const modint& o) const { return v != o.v; }
    // I/O
    friend std::ostream& operator<<(std::ostream& os, const modint& a) {
        return os << a.v;
    }
    friend std::istream& operator>>(std::istream& is, modint& a) {
        long long x;
        is >> x;
        a = modint(x);
        return is;
    }
};
const int MOD = 998244353;
using mint = modint<MOD>;

// const int MX = 200123;
// mint fac[MX], ifac[MX];

// mint binom(int n, int k) {
//     if (k < 0 || k > n) return mint(0);
//     mint ans = fac[n] * ifac[n-k] * ifac[k];
//     return ans;
// }
// void precompute() {
//     fac[0] = 1; fac[1] = 1;
//     FOR(i, 2, MX) {
//         fac[i] = fac[i-1] * i;
//     }
//     ifac[MX-1] = pow(fac[MX-1],MOD - 2);
//     FOR(i, MX-2, -1, -1) {
//         ifac[i] = ifac[i+1] * (i+1);
//     }
// }

// clang-format on
const ll NINF = -(1LL << 60);

void solve() {
    ints(N);
    vin(N, A);
    EACH(n, A) {
        ll s = -n;
        ll i = 1;
        while (i <= n) {
            ll q = n / i;
            ll last = n / q;
            s += q * (last - i + 1);
            i = last + 1;
        }
        print(s);
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    // precompute();
    // ints(T);
    int T = 1;
    FOR(tc, 0, T) { solve(); }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1207 D2. GCD equal Absolute Value (Hard Version)
Contest
Educational Round 1
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-14 16:12:04
Judged At
2025-07-14 16:12:04
Judged By
Score
5
Total Time
≥1100ms
Peak Memory
≥764.0 KiB