/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 540.0 KiB
#2 Accepted 6ms 680.0 KiB
#3 Accepted 14ms 772.0 KiB
#4 Accepted 22ms 788.0 KiB
#5 Accepted 44ms 676.0 KiB
#6 Accepted 67ms 672.0 KiB
#7 Accepted 92ms 540.0 KiB
#8 Accepted 2ms 540.0 KiB
#9 Accepted 3ms 540.0 KiB
#10 Accepted 6ms 680.0 KiB
#11 Accepted 8ms 676.0 KiB
#12 Accepted 93ms 772.0 KiB
#13 Accepted 2ms 540.0 KiB
#14 Accepted 2ms 644.0 KiB
#15 Accepted 3ms 584.0 KiB
#16 Accepted 3ms 588.0 KiB
#17 Accepted 2ms 768.0 KiB
#18 Accepted 2ms 540.0 KiB
#19 Accepted 2ms 540.0 KiB
#20 Accepted 2ms 540.0 KiB
#21 Accepted 2ms 540.0 KiB

Code

#include <bits/stdc++.h>
#include <cstdio>
using namespace std;

#define sp << " " << 
#define ll long long
#define ld long double
#define pb push_back
#define F first
#define S second
#define PI 3.1415926535897932384626

#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define sortall(x) sort(all(x))
#define sortrall(x) sort(rall(x))

#define printv(v) for(auto x : v) cout << x << " "; cout << "\n"
#define printm(m) for(auto x : m) cout << x.F sp x.S << "\n"

#define make_unique(x) sortall(x); (x).resize(unique(all(x)) - (x).begin())

const int mod = 1e9 + 7;
const int INF = 1e9;
const ll LINF = 1e18;

struct custom_hash {
    static uint64_t splitmix64(uint64_t x) {
        x += 0x9e3779b97f4a7c15;
        x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
        x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
        return x ^ (x >> 31);
    }

    size_t operator()(uint64_t x) const {
        static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};

template<typename T1, typename T2>
using safe_map = unordered_map<T1, T2, custom_hash>;

template<typename T>
using safe_set = unordered_set<T, custom_hash>;

template<typename T>
void debug(T x) {
    cerr << x << endl;
}

template<typename T, typename... Args>
void debug(T x, Args... args) {
    cerr << x << " ";
    debug(args...);
}

void fastIO() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}

void fraction() {
    cout.unsetf(ios::floatfield); 
    cout.precision(10); 
    cout.setf(ios::fixed,ios::floatfield);
}

void yn(bool res, bool cap = false) {
    if(!cap) cout << ((res) ? "YES\n" : "NO\n");
    else cout << ((res) ? "Yes\n" : "No\n");
}

inline int nxt() {
    int x;
    cin >> x;
    return x;
}
 
const int N = 1e5;
vector<int> primes;
 
void proc(){
    vector<bool> isPrime(N+1, true);
    isPrime[0] = isPrime[1] = false;
 
    for (ll i = 2; i * i <= N; ++i) {
        if (isPrime[i]) {
            for (ll j = i * i; j <= N; j += i) {
                isPrime[j] = false;
            }
        }
    }
 
    for (int i = 2; i <= N; ++i) {
        if (isPrime[i]) {
            primes.push_back(i);
        }
    }
}

void solve() {
    int n; cin >> n;
    ll ans = 0;
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= n-i; j++) {
            int r = i + j;
            for(auto &p : primes) {
                if(p-r > 0 && p-r <= n-i-j) ans++;
                else if(p-r > n-i-j)break;
            }
        }
    }

    cout << ans << "\n";
}

int main() {
    fastIO(); 
    proc();

    int tc = 1;
    // tc = nxt();
    for (int t = 1; t <= tc; t++) {
        // cout << "Case " << t << ": ";
        solve();
    }
}

Information

Submit By
Type
Submission
Problem
P1172 Counting Triplets
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-05 18:57:23
Judged At
2025-04-05 18:57:23
Judged By
Score
100
Total Time
93ms
Peak Memory
788.0 KiB