/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 2ms 532.0 KiB
#3 Accepted 282ms 564.0 KiB
#4 Accepted 283ms 568.0 KiB
#5 Accepted 285ms 340.0 KiB
#6 Accepted 95ms 564.0 KiB
#7 Accepted 281ms 568.0 KiB

Code

/*
 * Name : Md. Fahmidur Rahman Nafi
 * Date : 2025-07-14   Time : 22:07:53
 */

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define ll long long
#define ld long double
#define ull unsigned long long
#define lcm(a,b) ((a*b)/__gcd(a,b))
#define debug(x) cout << "Debug : " << x << endl;
const double PI = 2 * acos(0.0);
const int MOD = 1000000007;
const int N = 1e6 + 1;

void solve(){
    int n;
    cin >> n;
    int cnt = 0;

    for (int i = 2; i <= sqrtl(n); i++){
        cnt += (n / i);
    }

    int div = sqrt(n);

    for (int i = div - 1; i >= 2; i--){
        int low = 1, high = n, down = -1;
        while (low <= high){
            int mid = low + (high - low) / 2;
            if (n / mid > i){
                down = mid;
                low = mid + 1;
            }
            else{
                high = mid - 1;
            }
        }

        low = 1, high = n; int up = -1;
        while (low <= high){
            int mid = low + (high - low) / 2;
            if (n / mid >= i){
                up = mid;
                low = mid + 1;
            }
            else{
                high = mid - 1;
            }
        }

        // cout << "HERE " << up << ' ' << down << endl;
        
        if (down == -1 || up == -1){
            continue;
        }
        else{
            cnt += 1LL *  (i * (up - down));
        }
    }

    cnt += ((n + 1) / 2);
    cout << cnt << endl;
}

void FROM_GOOGLE(){
    int n;
    cin >> n;
    ll cnt = 0;

    int sq = sqrt(n);

    for(int i = 2; i <= sq; i++){
        cnt += n / i;
    }

    for(int v = 1; v <= n / (sq + 1); v++){
        int l = n / (v + 1) + 1;
        int r = n / v;
        if (l > r) continue;
        cnt += 1LL * v * (r - l + 1);
    }

    cout << cnt << endl;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int t;
    cin >> t;

    while(t--){
        FROM_GOOGLE();
    }
}

Information

Submit By
Type
Submission
Problem
P1207 D2. GCD equal Absolute Value (Hard Version)
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-14 18:17:09
Judged At
2025-07-14 18:17:09
Judged By
Score
100
Total Time
285ms
Peak Memory
568.0 KiB