cplib-cpp

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub hitonanode/cplib-cpp

:heavy_check_mark: data_structure/test/assosiative_array.test.cpp

Code

#define PROBLEM "https://judge.yosupo.jp/problem/associative_array"
#include <iostream>
#include <unordered_map>

#include <chrono>
struct custom_hash {
    // <https://codeforces.com/blog/entry/62393>
    static uint64_t splitmix64(uint64_t x) {
        // http://xorshift.di.unimi.it/splitmix64.c
        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 =
            std::chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;

int main() {
    std::cin.tie(nullptr), std::ios::sync_with_stdio(false);
    // std::unordered_map<long long, long long, custom_hash> mp;
    gp_hash_table<long long, long long, custom_hash> mp;

    int Q;
    std::cin >> Q;
    while (Q--) {
        int q;
        std::cin >> q;
        if (q) {
            long long k;
            std::cin >> k;
            std::cout << mp[k] << '\n';
        } else {
            long long k, v;
            std::cin >> k >> v;
            mp[k] = v;
        }
    }
}
#line 1 "data_structure/test/assosiative_array.test.cpp"
#define PROBLEM "https://judge.yosupo.jp/problem/associative_array"
#include <iostream>
#include <unordered_map>

#include <chrono>
struct custom_hash {
    // <https://codeforces.com/blog/entry/62393>
    static uint64_t splitmix64(uint64_t x) {
        // http://xorshift.di.unimi.it/splitmix64.c
        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 =
            std::chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;

int main() {
    std::cin.tie(nullptr), std::ios::sync_with_stdio(false);
    // std::unordered_map<long long, long long, custom_hash> mp;
    gp_hash_table<long long, long long, custom_hash> mp;

    int Q;
    std::cin >> Q;
    while (Q--) {
        int q;
        std::cin >> q;
        if (q) {
            long long k;
            std::cin >> k;
            std::cout << mp[k] << '\n';
        } else {
            long long k, v;
            std::cin >> k >> v;
            mp[k] = v;
        }
    }
}
Back to top page