Сума кубів#477

Сума кубів (Розбір)

Зверніть увагу, що кількість кубів, з якими ми маємо справу, є O(\sqrt[3]{N}). Ми повинні ітерувати від -O(\sqrt[3]{N}) до O(\sqrt[3]{N}), давайте визначимо сталий множник границь, щоб не отримати вердикт WA. В деяких негативних випадках ви точно перевищите 1000^3 цілих чисел, тож варто це врахувати, яким є безпечний постійний множник загалом, буде безпечним однозначно.

І, враховуючи ітерацію всіх пар (-3000 \le x < y \le 3000), це завершиться з O(1.8 \times 10^7) операціями, що зазвичай швидко.

(Можна оптимізувати до O(\sqrt[3]{N}) з кількома постійними множниками)

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double

void solve(){
    int n;cin>>n;
    for(int i=-3000;i<=3000;i++){
        for(int j=i;j<=3000;j++){
            if(i*i*i+j*j*j==n){
                cout<<i<<" "<<j<<"\n";
            }
        }
    }
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
}