Advertisement
AlejandroGY

Untitled

Dec 26th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstdint>
  4.  
  5. constexpr __uint128_t MOD = 1000000000000000009ull;
  6.  
  7. __uint128_t sumatoria(uint64_t x) {
  8.     __uint128_t res = ( (x * (x + 1)) / 2 ) % MOD;
  9.     return res;
  10. }
  11.  
  12. int main( )
  13. {
  14.     std::ios_base::sync_with_stdio(0);
  15.     std::cin.tie(0);
  16.     std::cout.tie(0);
  17.  
  18.     uint64_t n, q, k;
  19.     std::cin >> n >> q >> k;
  20.  
  21.     __uint128_t omegas[q];
  22.     for (uint64_t i = 0; i < q; ++i) {
  23.         uint64_t l, d;
  24.         std::cin >> l >> d;
  25.         omegas[i] = ( sumatoria(d) - sumatoria(l - 1) ) % MOD;
  26.     }
  27.     std::sort(omegas, omegas + q);
  28.  
  29.     uint64_t reyes = 0, chavos = 0, tablas = 0;
  30.     for (int i = 0; i < k; ++i) {
  31.         uint64_t rey;
  32.         std::cin >> rey;
  33.  
  34.         auto perdidos = (omegas + q) - std::upper_bound(omegas, omegas + q, rey);
  35.         auto ganados = std::lower_bound(omegas, omegas + q, rey) - omegas;
  36.         auto empates = std::upper_bound(omegas, omegas + q, rey) - std::lower_bound(omegas, omegas + q, rey);
  37.         /**
  38.         std::cout << "empates:" << empates << "\n";
  39.         std::cout << "ganados:" << ganados << "\n";
  40.         std::cout << "perdidos:" << perdidos << "\n";
  41.         std::cout << "\n";
  42.         /**/
  43.  
  44.         reyes += ganados;
  45.         tablas += empates;
  46.         chavos += perdidos;
  47.     }
  48.  
  49.     std::cout << "Chavos :) x " << chavos << "\n";
  50.     std::cout << "Tablas :| x " << tablas << "\n";
  51.     std::cout << "Reyes :( x " << reyes << "\n";
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement