/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Time Exceeded ≥2599ms ≥4.305 MiB
#2 Time Exceeded ≥2599ms ≥4.277 MiB

Code

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

// Function to count the number of divisors of a number x
int count_divisors(int x) {
    int divisors = 0;
    for (int i = 1; i <= sqrt(x); ++i) {
        if (x % i == 0) {
            divisors++;
            if (i != x / i) {
                divisors++;
            }
        }
    }
    return divisors;
}

int main() {
    const int MAX_N = 1000000;
    
    // Precompute the maximum divisors up to each N
    vector<int> max_divisors_up_to(MAX_N + 1, 0);

    // Precompute number of divisors for S(L) and store maximum divisors for each L
    for (int L = 1; L <= MAX_N; ++L) {
        int S_L = L * (L + 1) / 2;
        int divisors_count = count_divisors(S_L);
        max_divisors_up_to[L] = max(max_divisors_up_to[L - 1], divisors_count);
    }

    // Read number of test cases
    int T;
    cin >> T;
    
    // Process each test case
    while (T--) {
        int N;
        cin >> N;
        cout << max_divisors_up_to[N] << endl;
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1180 Maximum Divisor
Language
C++17 (G++ 13.2.0)
Submit At
2025-03-15 11:26:49
Judged At
2025-03-15 11:26:49
Judged By
Score
0
Total Time
≥2599ms
Peak Memory
≥4.305 MiB