/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Time Exceeded ≥2500ms ≥4.926 MiB
#2 Time Exceeded ≥2594ms ≥4.832 MiB

Code

#include "bits/stdc++.h"
using namespace std;
using ll = long long;
#define int ll
using pii = pair<int, int>;
template<typename T> using minHeap = priority_queue<T, vector<T>, greater<T>>;
#define all(x) x.begin(),x.end()
#define V vector
#define size(v) (int(v.size()))
const ll mxn= 1e6+3, inf= 1.5e18,mod= 1e9+7;//998244353;
// iwkms
vector<ll> primes{2};
bitset<mxn> ok(0);
int ans[mxn];
void pre() {
    for(ll i=3,j;i<mxn;i+=2)
        if(!ok[i]) {
            primes.push_back(i);
            for(j=i*i;j<mxn;j+=(i<<1)) ok[j]=1;
        }
    ans[1]=1;
    int pre = 1;
    for (int i=2;i<mxn;i++) {
        pre += i;
        int nm = pre, d = 1;
        for (int& p : primes) if (p*p > nm) break; else if (nm % p) continue; else {
            int e =1;while (nm%p==0) e++, nm /= p;
            d*= e;
        }
        if (nm>1) d *= 2;
        ans[i] = d;
        ans[i]=max(ans[i], ans[i-1]);
    }
}

void solve() {
    int n;cin>>n;
    cout<<ans[n]<<"\n";
}
int32_t main() 
{
    pre();
    cin.tie(0)->sync_with_stdio(0);
    int t=1;cin>>t;while(t--)
        solve();
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1180 Maximum Divisor
Contest
Brain Booster #9
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-06 16:25:59
Judged At
2025-04-06 16:25:59
Judged By
Score
0
Total Time
≥2594ms
Peak Memory
≥4.926 MiB