From aec61c2c62d6d0f3709e2e0673220a59c6edb5db Mon Sep 17 00:00:00 2001 From: tusharsk Date: Tue, 25 Dec 2018 11:31:33 +0530 Subject: [PATCH] Adding Template --- Template.cpp | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Template.cpp diff --git a/Template.cpp b/Template.cpp new file mode 100644 index 0000000..3ee84a2 --- /dev/null +++ b/Template.cpp @@ -0,0 +1,76 @@ +#include +#include +#include + +using namespace __gnu_pbds; +using namespace std; + +#define pb push_back +#define f first +#define s second +#define mp make_pair +#define SZ(x) ((int)(x.size())) +#define FOI(i, a, n) for( i = int(a); i <= int(n); i++) +#define FOD(i, a, n) for( i = int(a); i >= int(n); i--) +#define IN(x, y) ((y).find(x) != (y).end()) +#define ALL(t) t.begin(),t.end() +#define MSET(tabl,i) memset(tabl, i, sizeof(tabl)) +#define PSET(x,y) fixed< + void __f(const char* names, Arg1&& arg1, Args&&... args){ + const char* comma = strchr(names + 1, ','); cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); + } +#else +#define trace(...) +#endif + +const int N = 1e5 + 5; +const int lgN = 1e6+5; +const int te = 3e8+1; +const ll MOD = 998244353; +const lf pi = 3.141592653589793238462643383; +const ll IMAX = 1e9 + 5; +const double PI = 3.141592653589793; + + +template +using max_pq = priority_queue; +template +using min_pq = priority_queue,greater>; +template +using OST = tree, rb_tree_tag, tree_order_statistics_node_update>; + +ll x,y; +template T gcd(T a,T b){ if(a==0) {x=0,y=1; return b;}T gc=gcd(b%a,a);T temp;temp=x;x=y-(b/a)*temp;y=temp;return gc;} + +//(a^x)%m +ll po(ll a, ll x,ll m){ if(x==0){return 1;}ll ans=1;ll k=1; while(k<=x) {if(x&k){ans=((ans*a)%m);} k<<=1; a*=a; a%=m; }return ans; } + +ll modInverse(ll A, ll M) +{ + gcd(A,M); + return (x%M+M)%M; //x may be negative +} + +