Advertisement
pedrocasdev

C++ template

Sep 10th, 2022
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.25 KB | Source Code | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define gc getchar_unlocked
  4. #define fo(i, n) for (i = 0; i < n; i++)
  5. #define ll long long
  6. #define si(x) scanf("%d", &x)
  7. #define sl(x) scanf("%lld", &x)
  8. #define ss(s) scanf("%s", s)
  9. #define pi(x) printf("%d\n", x)
  10. #define pl(x) printf("%lld\n", x)
  11. #define ps(s) printf("%s\n", s)
  12. #define deb(x) cout << #x << "=" << x << endl
  13. #define deb2(x, y) cout << #x << "=" << x << "," << #y << "=" << y << endl
  14. #define pb push_back
  15. #define mp make_pair
  16. #define F first
  17. #define S second
  18. #define all(x) x.begin(), x.end()
  19. #define getunique(v)                              \
  20.   {                                               \
  21.     sort(v.begin(), v.end());                     \
  22.     v.erase(unique(v.begin(), v.end()), v.end()); \
  23.   }
  24. #define clr(x) memset(x, 0, sizeof(x))
  25. #define sortall(x) sort(all(x))
  26. #define tr(it, a) for (auto it = a.begin(); it != a.end(); it++)
  27. #define PI 3.1415926535897932384626
  28. typedef pair<int, int> pii;
  29. typedef pair<ll, ll> pl;
  30. typedef vector<int> vi;
  31. typedef vector<ll> vl;
  32. typedef vector<pii> vpii;
  33. typedef vector<pl> vpl;
  34. typedef vector<vi> vvi;
  35. typedef vector<vl> vvl;
  36. namespace number_theory
  37. {
  38.   ll gcd(ll x, ll y)
  39.   {
  40.     if (x == 0)
  41.       return y;
  42.     if (y == 0)
  43.       return x;
  44.     return gcd(y, x % y);
  45.   }
  46.   bool isprime(ll n)
  47.   {
  48.     if (n <= 1)
  49.       return false;
  50.     if (n <= 3)
  51.       return true;
  52.  
  53.     if (n % 2 == 0 || n % 3 == 0)
  54.       return false;
  55.  
  56.     for (ll i = 5; i * i <= n; i += 6)
  57.       if (n % i == 0 || n % (i + 2) == 0)
  58.         return false;
  59.  
  60.     return true;
  61.   }
  62.  
  63.   bool prime[15000105];
  64.   void sieve(int n)
  65.   {
  66.     for (ll i = 0; i <= n; i++)
  67.       prime[i] = 1;
  68.     for (ll p = 2; p * p <= n; p++)
  69.     {
  70.       if (prime[p] == true)
  71.       {
  72.         for (ll i = p * p; i <= n; i += p)
  73.           prime[i] = false;
  74.       }
  75.     }
  76.     prime[1] = prime[0] = 0;
  77.   }
  78.  
  79.   vector<ll> primelist;
  80.   bool __primes_generated__ = 0;
  81.  
  82.   void genprimes(int n)
  83.   {
  84.     __primes_generated__ = 1;
  85.     sieve(n + 1);
  86.     for (ll i = 2; i <= n; i++)
  87.       if (prime[i])
  88.         primelist.push_back(i);
  89.   }
  90.  
  91.   vector<ll> factors(ll n)
  92.   {
  93.     if (!__primes_generated__)
  94.     {
  95.       cerr << "Call genprimes you dope" << endl;
  96.       exit(1);
  97.     }
  98.     vector<ll> facs;
  99.  
  100.     for (ll i = 0; primelist[i] * primelist[i] <= n && i < primelist.size(); i++)
  101.     {
  102.       if (n % primelist[i] == 0)
  103.       {
  104.         while (n % primelist[i] == 0)
  105.         {
  106.           n /= primelist[i];
  107.           facs.push_back(primelist[i]);
  108.         }
  109.       }
  110.     }
  111.     if (n > 1)
  112.     {
  113.       facs.push_back(n);
  114.     }
  115.     sort(facs.begin(), facs.end());
  116.     return facs;
  117.   }
  118.  
  119.   vector<ll> getdivs(ll n)
  120.   {
  121.     vector<ll> divs;
  122.     for (ll i = 1; i * i <= n; i++)
  123.     {
  124.       if (n % i == 0)
  125.       {
  126.         divs.push_back(i);
  127.         divs.push_back(n / i);
  128.       }
  129.     }
  130.  
  131.     getunique(divs);
  132.     return divs;
  133.   }
  134. }
  135.  
  136. using namespace number_theory;
  137. mt19937_64 rang(chrono::high_resolution_clock::now().time_since_epoch().count());
  138.  
  139. int rng(int lim)
  140. {
  141.   uniform_int_distribution<int> uid(0, lim - 1);
  142.   return uid(rang);
  143. }
  144. int mpow(int base, int exp);
  145. void ipgraph(int n, int m);
  146. void dfs(int u, int par);
  147.  
  148. const int mod = 1000000007;
  149. const int N = 3e5, M = N;
  150. //=======================
  151.  
  152. const int di4[] = {-1, 0, 1,  0};
  153. const int dj4[] = { 0, 1, 0, -1};
  154. const int di8[] = {-1, 0, 1,  0, -1, 1,-1,1};
  155. const int dj8[] = { 0, 1, 0, -1, -1, 1,1,-1};
  156.  
  157.  
  158. vi g[N];
  159. int a[N];
  160.  
  161. void solve()
  162. {
  163.   int i, j, n, m;
  164. }
  165.  
  166. int main()
  167. {
  168.   ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  169.   srand(chrono::high_resolution_clock::now().time_since_epoch().count());
  170.  
  171.   int t = 1;
  172.   cin >> t;
  173.   while (t--)
  174.   {
  175.     solve();
  176.   }
  177.  
  178.   return 0;
  179. }
  180.  
  181. int mpow(int base, int exp)
  182. {
  183.   base %= mod;
  184.   int result = 1;
  185.   while (exp > 0)
  186.   {
  187.     if (exp & 1)
  188.       result = ((ll)result * base) % mod;
  189.     base = ((ll)base * base) % mod;
  190.     exp >>= 1;
  191.   }
  192.   return result;
  193. }
  194.  
  195. void ipgraph(int n, int m)
  196. {
  197.   int i, u, v;
  198.   while (m--)
  199.   {
  200.     cin >> u >> v;
  201.     u--, v--;
  202.     g[u].pb(v);
  203.     g[v].pb(u);
  204.   }
  205. }
  206.  
  207. void dfs(int u, int par)
  208. {
  209.   for (int v : g[u])
  210.   {
  211.     if (v == par)
  212.       continue;
  213.     dfs(v, u);
  214.   }
  215. }
  216.  
  217.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement