Advertisement
Mohammad_Dipu_Sultan

Dipu's Template

Nov 25th, 2021
880
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 13.01 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long           ll;
  5. typedef unsigned long long  ull;
  6. typedef double              ld;//%Lf
  7. #define ff                  first
  8. #define ss                  second
  9. #define pb                  push_back
  10. #define mp                  make_pair
  11. #define ppb                 pop_back
  12. #define in                  insert
  13. #define sz(a)               int((a).size())
  14. #define vi                  vector<int>
  15. #define vl                  vector<ll>
  16. #define vvi                 vector<vector<int> >
  17. #define pii                 pair<int,int>
  18. #define piii                pair<int,pair<int,int> >
  19. #define pll                 pair<ll,ll>
  20. #define vii                 vector<pii>
  21. #define vll                 vector<pll>
  22. #define viii                vector<piii>
  23. #define YES                 cout << "YES\n"
  24. #define NO                  cout << "NO\n"
  25.  
  26. #define scl(n)              scanf("%lld",&n)
  27. #define scll(x,y)           scanf("%lld %lld",&x,&y)
  28. #define gtl(x)              getline(cin, (x))
  29.  
  30. #define f0(b)               for(int i=0;i<(b);i++)
  31. #define f00(b)              for(int j=0;j<(b);j++)
  32. #define f1(b)               for(int i=1;i<=(b);i++)
  33. #define f11(b)              for(int j=1;j<=(b);j++)
  34. #define f2(a,b)             for(int i=(a);i<=(b);i++)
  35. #define f22(a,b)            for(int j=(a);j<=(b);j++)
  36. #define RFOR(i,x,y)         for(int i=x;i>=y;i--)
  37. #define all(v)              v.begin(),v.end()
  38. #define rall(v)             v.rbegin(),v.rend()
  39. #define unq(v)              sort(all(v)),(v).resize(unique(all(v))-v.begin())
  40. #define present(c,x)        ((c).find(x) != (c).end())
  41. #define cpresent(c,x)       (find(all(c),x) != (c).end())
  42. #define min_ele(v)          (*min_element(all(v)))
  43. #define max_ele(v)          (*max_element(all(v)))
  44. #define cnt_ele(v, x)       (count(all(v), x))
  45. #define sum_ele(v)          (accumulate(all(v),0))
  46. #define reversed(s)         reverse(s.begin(), s.end())
  47.  
  48. #define testcase            ll t; cin>>t; while (t--)
  49. #define vout(v)             for(int ind=0;ind<v.size();ind++){ cout<<v[ind]; if(ind<v.size()-1) cout<<' '; else cout<<endl;}
  50. #define arrout(arr,i,x,y)   for(int i=x;i<=y;i++){ cout<<arr[i]; if(i<y) cout<<' '; else cout<<endl;}
  51. #define PI                  acos(-1)
  52. #define CLR(x, y)           memset(x, y, sizeof(x))
  53. #define Precision(a)        cout << fixed << setprecision(a)
  54. #define BITCH_FAST()        ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) //Don't use scanf/printf
  55. #define MAXP                1000006
  56. #define INF9                  2147483647
  57. #define INF18                 9223372036854775806
  58. #define MOD                 1e9+7//10000007 // For big mod
  59. #define EPS                 1e-7
  60.  
  61. template <typename T> T Sqr(T x) { T n = x * x ; return n ;}
  62. template <typename T> T Pow(T B,T P){ if(P==0) return 1; if(P&1) return B*Pow(B,P-1);  else return Sqr(Pow(B,P/2));}
  63. template <typename T> T Abs(T a) {if(a<0)return -a;else return a;}
  64. template <typename T> T Gcd(T a,T b){if(a<0)return Gcd(-a,b);if(b<0)return Gcd(a,-b);return (b==0)?a:Gcd(b,a%b);} // better than __gcd
  65. template <typename T> T Lcm(T a,T b) {if(a<0)return Lcm(-a,b);if(b<0)return Lcm(a,-b);return a*(b/Gcd(a,b));}
  66. template <typename T> T power(T n, T p){ T res = 1;while(p > 0){if(p & 1)res *= n;n *= n;p >>= 1;}return res;}
  67. template <typename T> T BigMod (T b,T p,T m){if (p == 0) return 1;if (p%2 == 0){T s = BigMod(b,p/2,m);return ((s%m)*(s%m))%m;}return ((b%m)*(BigMod(b,p-1,m)%m))%m;}
  68. template <typename T> inline string ToBinary(T n) {string r ;while(n != 0) {r = ( n % 2 == 0 ? "0" : "1" ) + r ; n >>= 1;} return r ;}
  69. long long BinaryToDecimal(string s) {int len = s.size();long long n = 0, p = 1;for (int i = len - 1; i >= 0; i-- , p *= 2) n += p * (s[i] - '0');return n;}
  70. int Strtoint(string str){stringstream ss(str);int x = 0;ss >> x ;return x ;}
  71. string Intostr(int x){stringstream ss; ss << x; string str = ss.str(); return str;}
  72.  
  73. /*----------------------Graph Moves----------------*/
  74. int ROW[]={+1,-1,+0,+0};
  75. int COL[]={+0,+0,+1,-1};
  76.  
  77. int X[]={+0,+0,+1,-1,-1,+1,-1,+1};   // Kings Move
  78. int Y[]={-1,+1,+0,+0,+1,+1,-1,-1};  // Kings Move
  79.  
  80. int KX[]={-2, -2, -1, -1,  1,  1,  2,  2};  // Knights Move
  81. int KY[]={-1,  1, -2,  2, -2,  2, -1,  1}; // Knights Move
  82.  
  83. ll phi(ll n)
  84. {
  85.     ll x=n;
  86.     for(ll i=2; i*i<=n; i++)
  87.     {
  88.         if(n%i==0)
  89.         {
  90.             while(n%i==0)
  91.             {
  92.                 n/=i;
  93.             }
  94.             x-=x/i;
  95.         }
  96.     }
  97.     if(n>1)
  98.     {
  99.         x-=x/n;
  100.        
  101.     }
  102.     return x;
  103. }
  104. Case handle: if(n==1) cout << 0 << endl// after code start delete this
  105.  
  106. int ND[MAXP+2];
  107. void NOD()
  108. {
  109.     for(int i=1; i<=MAXP; i++)
  110.     {
  111.         for(int j=i; j<=MAXP; j+=i)
  112.         {
  113.             ND[j]++;
  114.         }
  115.     }
  116.  
  117. }
  118.  
  119. ll DigitSum(ll x)
  120. {
  121.     ll sum=0;
  122.     while(x>0)
  123.     {
  124.         sum+=x%10;
  125.         x/=10;
  126.     }
  127.     return sum;
  128. }
  129.  
  130.  
  131. void printBinary(int num)
  132. {
  133.     for(int i=10; i>=0; --i)
  134.     {
  135.         cout << ((num >> i) & 1);
  136.     }
  137.     cout << endl;
  138. }
  139.  
  140. bool IsPalindrome(string s)
  141. {
  142.     int N = s.size();
  143.     for ( int i = 0; i < N / 2; i++)
  144.     {
  145.         if (s[i] != s[N - 1 - i]) return 0;
  146.     }
  147.     return 1;
  148. }
  149.  
  150. string toBinary(ll n){
  151.     string s;
  152.     if(n==0) s.push_back('0');
  153.     while(n){
  154.         if(n%2==0) s.push_back('0');
  155.         else s.push_back('1');
  156.         n/=2;
  157.     }
  158.     return s;
  159. }
  160. Int main{
  161.         string a,b;
  162.         cin>>a>>b;
  163.         // ***BINARY CONVERSION***
  164.         a = toBinary(A);
  165.         b = toBinary(B);
  166.         //-------------------------
  167. }
  168.  
  169. ll toInt(string s){
  170.     ll digit=0,ans=0;
  171.     for(ll i=s.length()-1;i>=0;i--){
  172.         ans+=pow(16,digit++)*m[s[i]];
  173.     }
  174.     return ans;
  175. }
  176. Int main{
  177.         string a,b;
  178.         cin>>a>>b;
  179.         // ***DECIMAL CONVERSION***
  180.         ll A = toInt(a);
  181.         ll B = toInt(b);
  182.         //****************
  183. }
  184.  
  185.    
  186. string fib[MAXP];
  187. string Add_sum(string str1,string str2)
  188. {
  189.  
  190.     if (str1.length() > str2.length())
  191.         swap(str1, str2);
  192.  
  193.  
  194.     int n1 = str1.length(), n2 = str2.length();
  195.     string str = "";
  196.  
  197.     reverse(str1.begin(), str1.end());
  198.     reverse(str2.begin(), str2.end());
  199.     ll carry = 0;
  200.     for (int i=0; i<n1; i++)
  201.     {
  202.         // Do school mathematics, compute sum of
  203.         // current digits and carry
  204.         int sum = ((str1[i]-'0')+(str2[i]-'0')+carry);
  205.         str.push_back(sum%10 + '0');
  206.  
  207.         // Calculate carry for next step
  208.         carry = sum/10;
  209.     }
  210.  
  211.     // Add remaining digits of larger number
  212.     for (int i=n1; i<n2; i++)
  213.     {
  214.         int sum = ((str2[i]-'0')+carry);
  215.         str.push_back(sum%10 + '0');
  216.         carry = sum/10;
  217.     }
  218.  
  219.     // Add remaining carry
  220.     if (carry)
  221.         str.push_back(carry+'0');
  222.  
  223.     // reverse resultant string
  224.     reverse(str.begin(), str.end());
  225.  
  226.     return str;
  227. }
  228.  
  229. void Fibs()
  230. {
  231.     fib[0]="0";
  232.     fib[1]="1";
  233.     for(ll i=2; i<=1000; i++)
  234.     {
  235.         fib[i]=Add_sum(fib[i-1], fib[i-2]);
  236.     }
  237. }
  238.  
  239. ll fb[100];
  240. void Fib()
  241. {
  242.     fb[0]=1;
  243.     fb[1]=1;
  244.     for(ll i=2; i<=95; i++)
  245.     {
  246.         fb[i]=fb[i-1]+fb[i-2];
  247.     }
  248. }
  249.  
  250. int Extended_Euclidean_GCD(int a, int b, int& x, int& y)
  251. {
  252.     if (b == 0)
  253.     {
  254.         x = 1;
  255.         y = 0;
  256.         return a;
  257.     }
  258.     int x1, y1;
  259.     int d = Extended_Euclidean_GCD(b, a % b, x1, y1);
  260.     x = y1;
  261.     y = x1 - y1 * (a / b);
  262.     return d;
  263. }
  264. #define bug printf("**!\n")
  265. #define D(x)            cerr << __LINE__ << ": " #x " = " << (x) << '\n'
  266. #define DD(x, y)        cerr << __LINE__ << ": " #x " = " << (x) << ", " #y " = " << (y) << '\n'
  267. #define DDD(x, y, z)    cerr << __LINE__ << ": " #x " = " << (x) << ", " #y " = " << (y) << ",  " #z " = " << (z) << '\n'
  268. vector <int> prime; //In this vector all the primes are saved
  269. bitset<MAXP> mark; //nonprime indexes are true, prime indexes are false here
  270.  
  271. void sieve(){
  272.     int m=1.0*sqrt(MAXP)+2; int x;
  273.     prime.push_back(2); prime.push_back(3);
  274.     mark[0]=mark[1]=true;
  275.     for(int i=4;i<MAXP;i+=2)mark[i]=true;
  276.     for(int i=9;i<MAXP;i+=6)mark[i]=true;
  277.     for(int i=5;i<MAXP;i+=6){
  278.         if(!mark[i]){
  279.             prime.push_back(i);
  280.             if(i<=m)
  281.                 for(int j=i*i;j<MAXP;j+=2*i)mark[j]=true;
  282.         }
  283.         if(!mark[i+2]){ x=i+2;
  284.             prime.push_back(x);
  285.             if(x<=m)
  286.                 for(int j=x*x;j<MAXP;j+=2*x)mark[j]=true;
  287.         }
  288.     }
  289. }
  290.  
  291.  
  292. vector <long long> vec ;
  293. void divisors(long long n)
  294. {
  295.     vec.clear() ;
  296.     for(long long i = 1 ; i * i <= n ; i++)
  297.     {
  298.         if(n % i == 0)
  299.         {
  300.             vec.push_back(i) ;
  301.             if(i * i != n)
  302.             vec.push_back(n / i) ;
  303.         }
  304.     }
  305. }
  306. void prime_Factor(int n)
  307. {
  308.     for(int i=2; i<=n; i++)
  309.     {
  310.         if(n%i==0)
  311.         {
  312.             int cnt=0;
  313.             while(n%i==0)
  314.             {
  315.                 n=n/i;
  316.                 cnt++;
  317.             }
  318.             cout  << i <<"^"<< cnt <<  " ";
  319.         }
  320.  
  321.     }
  322.     cout << endl;
  323. }
  324.  
  325. vector<int>factor;
  326. void primeFactorize(int n)
  327. {
  328.     for(int i=0; prime[i]*prime[i]<=n && i<prime.size(); i++)
  329.     {
  330.         if(n%prime[i]==0)
  331.         {
  332.             while(n%prime[i]==0)
  333.             {
  334.                 n=n/prime[i];
  335.                 factor.push_back(prime[i]);
  336.  
  337.             }
  338.         }
  339.     }
  340.     if(n>1)
  341.     {
  342.         factor.push_back(prime[i]);
  343.     }
  344. }
  345.  
  346. bool IsPrime(ll n)
  347. {
  348.     if (n == 2 or n == 3) return true;
  349.     if (n % 2 == 0) return false;
  350.     for (ll i = 3; i * i <= n; i += 2) if (n % i == 0) return false;
  351.     return true;
  352. }
  353.  
  354.  
  355. string Add_sum(string str1,string str2)
  356. {
  357.  
  358.     if (str1.length() > str2.length())
  359.         swap(str1, str2);
  360.  
  361.  
  362.     int n1 = str1.length(), n2 = str2.length();
  363.     string str = "";
  364.  
  365.     reverse(str1.begin(), str1.end());
  366.     reverse(str2.begin(), str2.end());
  367.     ll carry = 0;
  368.     for (int i=0; i<n1; i++)
  369.     {
  370.         // Do school mathematics, compute sum of
  371.         // current digits and carry
  372.         int sum = ((str1[i]-'0')+(str2[i]-'0')+carry);
  373.         str.push_back(sum%10 + '0');
  374.  
  375.         // Calculate carry for next step
  376.         carry = sum/10;
  377.     }
  378.  
  379.     // Add remaining digits of larger number
  380.     for (int i=n1; i<n2; i++)
  381.     {
  382.         int sum = ((str2[i]-'0')+carry);
  383.         str.push_back(sum%10 + '0');
  384.         carry = sum/10;
  385.     }
  386.  
  387.     // Add remaining carry
  388.     if (carry)
  389.         str.push_back(carry+'0');
  390.  
  391.     // reverse resultant string
  392.     reverse(str.begin(), str.end());
  393.  
  394.     return str;
  395. }
  396.  
  397. string multiplication(string nums1,string nums2)
  398. {
  399.     ll l1 = nums1.size();
  400.     ll l2 = nums2.size();
  401.  
  402.     ll i,j;
  403.  
  404.     string str( l1 + l2, '0');
  405.  
  406.     for(i=l1-1; i>= 0; i--)
  407.     {
  408.         for(j=l2-1; j>= 0; j--)
  409.         {
  410.             ll p = (nums1[i]-'0')*(nums2[j]-'0') + (str[i+j+1]-'0');
  411.             str[i+j+1] = p%10 + '0';
  412.             str[i+j] += p/10;
  413.         }
  414.     }
  415.     for(i=0; i<l1+l2; i++)
  416.     {
  417.         if(str[i]!= '0')
  418.         {
  419.             return str.substr(i);
  420.         }
  421.     }
  422.     return "0";
  423. }
  424.  
  425.  
  426. string div(string a,ll x)
  427. {
  428.     ll r=0,i,j,k,l;
  429.     string s;
  430.     for(i=0; i<a.size(); i++)
  431.     {
  432.         r=r*10+a[i]-'0';
  433.         s+=(r/x)+'0';
  434.         r%=x;
  435.     }
  436.     for(i = 0; i <s.size(); i++)
  437.     {
  438.         if(s[i]!= '0')
  439.         {
  440.             return s.substr(i);
  441.         }
  442.     }
  443.     return "0";
  444. }
  445.  
  446. string Addition(string a,string c)
  447. {
  448.  
  449.     ll s1,s2,l,i,j,k=0;
  450.     string sum="";
  451.  
  452.     reverse(a.begin(),a.end());
  453.     reverse(c.begin(),c.end());
  454.  
  455.     s1=a.size();
  456.     s2=c.size();
  457.     l=max(s1,s2);
  458.  
  459.     for(i=0; i<l; i++)
  460.     {
  461.         if(i<s1)
  462.         {
  463.             k+=(a[i]-'0');
  464.         }
  465.         if(i<s2)
  466.         {
  467.             k+=(c[i]-'0');
  468.         }
  469.         sum+=((k%10)+'0');
  470.         k/=10;
  471.     }
  472.  
  473.     if(k)
  474.     {
  475.         sum+=(k+'0');
  476.     }
  477.     reverse(sum.begin(),sum.end());
  478.  
  479.     for(i = 0; i <sum.size(); i++)
  480.     {
  481.         if(sum[i]!= '0')
  482.         {
  483.             return sum.substr(i);
  484.         }
  485.     }
  486.     return "0";
  487. }
  488.  
  489. string subtract(string str1, string str2)
  490. {
  491.     if (str1<str2)
  492.     {
  493.         swap(str1, str2);
  494.     }
  495.     string str;
  496.  
  497.     ll n1 = str1.length();
  498.     ll n2 = str2.length();
  499.  
  500.     reverse(str1.begin(), str1.end());
  501.     reverse(str2.begin(), str2.end());
  502.  
  503.     ll carry=0,i,sub;
  504.  
  505.     for (i = 0; i < n2; i++)
  506.     {
  507.         sub= ((str1[i] - '0') - (str2[i] - '0') - carry);
  508.         if (sub < 0)
  509.         {
  510.             sub = sub + 10;
  511.             carry = 1;
  512.         }
  513.         else
  514.         {
  515.             carry = 0;
  516.         }
  517.  
  518.         str+=(sub+'0');
  519.     }
  520.  
  521.     for (i=n2; i < n1; i++)
  522.     {
  523.         sub=((str1[i] - '0') - carry);
  524.         if (sub<0)
  525.         {
  526.             sub = sub + 10;
  527.             carry = 1;
  528.         }
  529.         else
  530.         {
  531.             carry = 0;
  532.         }
  533.  
  534.         str+=(sub+'0');
  535.     }
  536.  
  537.     reverse(str.begin(), str.end());
  538.  
  539.     for(i=0; i<str.size(); i++)
  540.     {
  541.         if(str[i]!= '0')
  542.         {
  543.             return str.substr(i);
  544.         }
  545.     }
  546.     return "0";
  547. }
  548.  
  549.  
  550. int main()
  551. {
  552.     BITCH_FAST();
  553.  
  554.     return 0;
  555. }
  556.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement