Submission #856106

#TimeUsernameProblemLanguageResultExecution timeMemory
856106vjudge1Savrsen (COCI17_savrsen)C++17
45 / 120
638 ms78932 KiB
//author: Ahmet Alp Orakci
#include <bits/stdc++.h>
using namespace std;
using i64 = unsigned int;

const int MAXN = 1E7 + 5;

i64 res[MAXN];
i64 pref[MAXN];

void precalc() {
    for(int i = 1; i < MAXN; i++) {
        for(int j = i; j < MAXN; j += i) {
            res[j] += i;
        }

        pref[i] = (2 * i >= res[i] ? 2 * i - res[i] : res[i] - 2 * i);
    }

    for(int i = 1; i < MAXN; i++)
        pref[i] += pref[i -1];
}

#define ONLINE_JUDGE
void solve() {
    int a, b;
    cin >> a >> b;

    cout << pref[b] - pref[a -1];
    
    return;
}

signed main() {
    #ifndef ONLINE_JUDGE
        freopen(".in", "r", stdin);
        freopen(".out", "w", stdout);
    #endif

    precalc();

    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int t = 1; //cin >> t;
    for(int i = 1; i <= t; i++) {
        solve();
    }

    return 0;
}

Compilation message (stderr)

savrsen.cpp: In function 'void precalc()':
savrsen.cpp:17:26: warning: comparison of integer expressions of different signedness: 'int' and 'i64' {aka 'unsigned int'} [-Wsign-compare]
   17 |         pref[i] = (2 * i >= res[i] ? 2 * i - res[i] : res[i] - 2 * i);
      |                    ~~~~~~^~~~~~~~~
#Result Execution timeMemoryGrader output
Fetching results...