Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <cstdint>
- constexpr __uint128_t MOD = 1000000000000000009ull;
- __uint128_t sumatoria(uint64_t x) {
- __uint128_t res = ( (x * (x + 1)) / 2 ) % MOD;
- return res;
- }
- int main( )
- {
- std::ios_base::sync_with_stdio(0);
- std::cin.tie(0);
- std::cout.tie(0);
- uint64_t n, q, k;
- std::cin >> n >> q >> k;
- __uint128_t omegas[q];
- for (uint64_t i = 0; i < q; ++i) {
- uint64_t l, d;
- std::cin >> l >> d;
- omegas[i] = ( sumatoria(d) - sumatoria(l - 1) ) % MOD;
- }
- std::sort(omegas, omegas + q);
- uint64_t reyes = 0, chavos = 0, tablas = 0;
- for (int i = 0; i < k; ++i) {
- uint64_t rey;
- std::cin >> rey;
- auto perdidos = (omegas + q) - std::upper_bound(omegas, omegas + q, rey);
- auto ganados = std::lower_bound(omegas, omegas + q, rey) - omegas;
- auto empates = std::upper_bound(omegas, omegas + q, rey) - std::lower_bound(omegas, omegas + q, rey);
- /**
- std::cout << "empates:" << empates << "\n";
- std::cout << "ganados:" << ganados << "\n";
- std::cout << "perdidos:" << perdidos << "\n";
- std::cout << "\n";
- /**/
- reyes += ganados;
- tablas += empates;
- chavos += perdidos;
- }
- std::cout << "Chavos :) x " << chavos << "\n";
- std::cout << "Tablas :| x " << tablas << "\n";
- std::cout << "Reyes :( x " << reyes << "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement