From 6e31a2677eb75afbb1232804c04306de488eb10b Mon Sep 17 00:00:00 2001 From: Vidur Date: Mon, 17 Apr 2023 15:57:39 +0530 Subject: [PATCH] 17 April --- ....cpp_cc77b8f26976a3fd6d56b532ff6b8e6c.prob | 1 + ....cpp_7691f6e22bcd1f0e2480b1115e7ea501.prob | 1 + ....cpp_581344e6d22275df4a76354b75a9475d.prob | 1 + 1348B_Phoenix_and_Beauty.bin | Bin 0 -> 129961 bytes 1348B_Phoenix_and_Beauty.cpp | 334 ++++++++++++++++ 1360E_Polygon.bin | Bin 0 -> 115102 bytes 1360E_Polygon.cpp | 330 ++++++++++++++++ 515C_Drazil_and_Factorial.bin | Bin 0 -> 127274 bytes 515C_Drazil_and_Factorial.cpp | 362 ++++++++++++++++++ 9 files changed, 1029 insertions(+) create mode 100644 .cph/.1348B_Phoenix_and_Beauty.cpp_cc77b8f26976a3fd6d56b532ff6b8e6c.prob create mode 100644 .cph/.1360E_Polygon.cpp_7691f6e22bcd1f0e2480b1115e7ea501.prob create mode 100644 .cph/.515C_Drazil_and_Factorial.cpp_581344e6d22275df4a76354b75a9475d.prob create mode 100755 1348B_Phoenix_and_Beauty.bin create mode 100644 1348B_Phoenix_and_Beauty.cpp create mode 100755 1360E_Polygon.bin create mode 100644 1360E_Polygon.cpp create mode 100755 515C_Drazil_and_Factorial.bin create mode 100644 515C_Drazil_and_Factorial.cpp diff --git a/.cph/.1348B_Phoenix_and_Beauty.cpp_cc77b8f26976a3fd6d56b532ff6b8e6c.prob b/.cph/.1348B_Phoenix_and_Beauty.cpp_cc77b8f26976a3fd6d56b532ff6b8e6c.prob new file mode 100644 index 0000000..2bd430c --- /dev/null +++ b/.cph/.1348B_Phoenix_and_Beauty.cpp_cc77b8f26976a3fd6d56b532ff6b8e6c.prob @@ -0,0 +1 @@ +{"name":"Local: 1348B_Phoenix_and_Beauty","url":"/Users/vidurgoel/Codeforces/1348B_Phoenix_and_Beauty.cpp","tests":[{"id":1681666529947,"input":"4\n4 2\n1 2 2 1\n4 3\n1 2 2 1\n3 2\n1 2 3\n4 4\n4 3 4 2\n","output":"8\n1 2 1 2 1 2 1 2 \n12\n1 2 3 1 2 3 1 2 3 1 2 3 \n-1\n16\n1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4"}],"interactive":false,"memoryLimit":1024,"timeLimit":3000,"srcPath":"/Users/vidurgoel/Codeforces/1348B_Phoenix_and_Beauty.cpp","group":"local","local":true} \ No newline at end of file diff --git a/.cph/.1360E_Polygon.cpp_7691f6e22bcd1f0e2480b1115e7ea501.prob b/.cph/.1360E_Polygon.cpp_7691f6e22bcd1f0e2480b1115e7ea501.prob new file mode 100644 index 0000000..55e738d --- /dev/null +++ b/.cph/.1360E_Polygon.cpp_7691f6e22bcd1f0e2480b1115e7ea501.prob @@ -0,0 +1 @@ +{"name":"Local: 1360E_Polygon","url":"/Users/vidurgoel/Codeforces/1360E_Polygon.cpp","tests":[{"id":1681711339539,"input":"5\n4\n0010\n0011\n0000\n0000\n2\n10\n01\n2\n00\n00\n4\n0101\n1111\n0101\n0111\n4\n0100\n1110\n0101\n0111","output":"YES\nNO\nYES\nYES\nNO"}],"interactive":false,"memoryLimit":1024,"timeLimit":3000,"srcPath":"/Users/vidurgoel/Codeforces/1360E_Polygon.cpp","group":"local","local":true} \ No newline at end of file diff --git a/.cph/.515C_Drazil_and_Factorial.cpp_581344e6d22275df4a76354b75a9475d.prob b/.cph/.515C_Drazil_and_Factorial.cpp_581344e6d22275df4a76354b75a9475d.prob new file mode 100644 index 0000000..d8f97cb --- /dev/null +++ b/.cph/.515C_Drazil_and_Factorial.cpp_581344e6d22275df4a76354b75a9475d.prob @@ -0,0 +1 @@ +{"name":"Local: 515C_Drazil_and_Factorial","url":"/Users/vidurgoel/Codeforces/515C_Drazil_and_Factorial.cpp","tests":[{"id":1681714684464,"input":"4\n1234","output":"33222"},{"id":1681715074587,"input":"3\n555","output":"555"}],"interactive":false,"memoryLimit":1024,"timeLimit":3000,"srcPath":"/Users/vidurgoel/Codeforces/515C_Drazil_and_Factorial.cpp","group":"local","local":true} \ No newline at end of file diff --git a/1348B_Phoenix_and_Beauty.bin b/1348B_Phoenix_and_Beauty.bin new file mode 100755 index 0000000000000000000000000000000000000000..a5db880b8eb48fda3b0b1aefa7e0add7015a505e GIT binary patch literal 129961 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +using namespace chrono; + +void solve_array(); +void solve_single(); +void solve_mul(); + +typedef long long int ll; +typedef unsigned long long int ull; +typedef long double lld; +typedef vector vl; +typedef pair pll; +typedef vector vpll; +typedef vector vvl; + +#define make_it_fast() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); +#define rept(i, a, n) for (ll i = (a); i < (n); i++) +#define all(x) (x).begin(), (x).end() +#define sor(x) sort(all(x)) +#define sorr(x) sort(x.rbegin(),x.rend()) // this is in order to do sorting in descending order +#define lb lower_bound +#define ub upper_bound +#define pb push_back +#define ppb pop_back +#define mp make_pair +#define ff first +#define ss second +#define MOD 1000000007 +#define MOD1 998244353 +#define PI 3.141592653589793238462 +#define mset multiset // it contains multiple instances of the same value in ascending order +#define rep(i,a,b) for(ll i=a;i=a;i--) +#define nn endl +#define setbits(n) __builtin_popcount(n) + +vl seive(1000002,-1); + +string yup="YES"; +string nope="NO"; + +ll lmin(vl arr){return *min_element(arr.begin(),arr.end());} +ll lmax(vl arr){return *max_element(arr.begin(),arr.end());} + +ll fibonacci(ll n){ll a=0;ll b=1;ll c;if(n==0 || n==1){return n;}for(ll i=2;i>arr[i];}return;} +void prv(vl arr){rep(i,0,arr.size()){cout<1 that divides i actually + +vl segmented_seive(ll l,ll r){ + ll n=r; + ll num=(ll)ceil(sqrtl(n)); + vl is_prime(num,-1); + vl primes; + vl ans(r-l+1,-1); + for(ll i=2;i<=num;i++){ + if(is_prime[i]==-1){ + primes.pb(i); + for(ll j=i*i;j1 that divides l+i actually. + +void seiv(){ + seive[0]=0; + seive[1]=1; + rep(i,2,(ll)floor(sqrtl(1000002))+1){ + if(seive[i]==-1){ + seive[i]=-1; + for(ll j=i*i;j<1000002;j=j+i){ + if(seive[j]==-1){ + seive[j]=i; + } + } + } + } +} + +// Always return a positive integer +ll gcd(ll a,ll b){a=abs(a);b=abs(b);ll k=1;while(a%2==0 && b%2==0){k=2*k;a=a/2;b=b/2;}while(a%2==0){a=a/2;}while(b%2==0){b=b/2;}while(b!=0){a=a%b;swap(a,b);}return k*a;} + +// This implementation of extended Euclidean algorithm produces correct results for negative integers as well. +ll gcd(ll a,ll b,ll &x,ll &y){if(b == 0){x = 1;y = 0;return a;}ll x1, y1;ll d = gcd(b, a % b, x1, y1);x = y1;y = x1 - y1 * (a / b);return d;} + +// Always return a positive integer +ll lcm(ll a,ll b){a=abs(a);b=abs(b);return (a/gcd(a, b))*b;} + +// Binary Exponentiation +ll binpow(ll a,ll n){ll res=1;while(n!=0){if(n%2==0){a=a*a;n=n/2;}else{res=res*a;n=n-1;}}return res;} + +// Modulo Binary Exponentiation +ll binpowmod(ll a,ll n,ll m){ll res=1;while(n!=0){if(n%2==0){a=a*a%m;n=n/2;}else{res=res*a%m;n=n-1;}}return res;} + +// if we know that in Modulo Binary Exponentiation the m is going to be prime than even for n>>m we can speed it up +ll binpowmod_prime(ll a,ll n,ll m){ll res=1;while(n!=0){if(n%2==0){a=a*a%m;n=(n/2)%(m-1);}else{res=res*a%m;n=(n-1)%(m-1);}}return res;} + +ll add_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;} +ll mul_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;} +ll sub_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;} + +/* + A) double sqrt(double arg): It returns the square root of a number to type double. + B) float sqrtf(float arg): It returns the square root of a number to type float. + C) long double sqrtl(long double arg): It returns the square root of a number to type long double with more precision. + Advised to always use C) as always give correct one as other may halt in case of the big numbers + cbrt() in built function to give the cube root in float/double + abs() is used for the absolute value of a number + swap() function in c++ used to swap value of two elements of the same data type. + toupper() This function is used for converting a lowercase character to uppercase. + tolower() This function is used for converting an uppercase character to lowercase. + ceil() and floor() function + sort(vect.begin(),vect.end(), greater()); + reverse(vect.begin(), vect.end()); + count(first_iterator, last_iterator,x) – To count the occurrences of x in vector. + find(first_iterator, last_iterator, x) – Returns an iterator to the first occurrence of x in vector and points to last address of vector ((name_of_vector).end()) if element is not present in vector + + maximium value long long can take 9, 223, 372, 036, 854, 775, 807 + 2^63-1 + i.e, length of 19 only + maximium value long long can take 18, 446, 744, 073, 709, 551, 615 + 2^64-1 + i.e, length of 20 only + + lower_bound(v.begin(), v.end(), 6) these are the syntax + upper_bound(v.begin(), v.end(), 6) + + In multiset to remove all element of a same number use a.erase() + else to remove 1 lement only use ans.erase(ans.find(*it)) here it is the iterator + + priority_queue, greater > gquiz(arr, arr + n); + Here above is the syntax of the min_heap implementation with the help of the priority queue and here push() and pop() and top() are the main operations + priority_queue gquiz(arr, arr + n); + Here above is the syntax of the max_heap implementation with the help of the priority queue and here push() and pop() and top() are the main operations + + Whenever need to do the hashing always use the map which is the stl template of hashing never use the array indexing method. + map.find() function has complexity 0(logn) + map.insert function has complexity 0(1) + __builtin_popcount(n) - we use this function to count the number of 1's (set bits) in the number in binary form + __builtin_parity(n) - this is boolean function which return true if number of 1's in binary form of n are odd else returns false; + __builtin_clz(n) - eg: Binary form of 16 is 00000000 00000000 00000000 00010000 therefore will return the number of the leading zeroes in n here answer will be 27 + __builtin_ctz(n) - eg: Binary form of 20 is 00000000 00000000 00000000 00010100 therefore will return the number of the trailing zeroes in n here answer will be 2 + + An important info about the lower_bound used in various data structures + actually if number is present they will return te iterator pointing to that number in the data structure otherwise return the + next iterator in that data structure so depends whether sorted in ascending or descending order. + An important info about the upper_bound used in various data structures + is that it will return the iterator pointing to the next iterator to which the number should be there also depends on the sorting order + + Modulo operations, although we see them as O(1), are a lot slower than simpler operations like addition, subtraction or bitwise operations. So it would be better to avoid those. + + Always in the question related to the graph always access from the global variables +*/ + +struct dsu{ + vl parent; + vl size; + + dsu(ll n){ + size.resize(n+1); + parent.resize(n+1); + rep(i,0,n+1){ + make_set(i); + } + } + + void make_set(ll v){ + parent[v]=v; + size[v]=1; + } + + ll find_set(ll v){ + if(v==parent[v]){ + return v; + } + else{ + return parent[v]=find_set(parent[v]); + } + } + void union_set(ll a,ll b){ + a=find_set(a); + b=find_set(b); + if(a==b){ + return; + } + else{ + if(size[a]>=size[b]){ + parent[b]=a; + size[a] += size[b]; + } + else{ + parent[a]=b; + size[b] += size[a]; + } + } + } +}; + +bool mycompare(pll p1 ,pll p2){ + if(p1.first>test; + rep(i,0,test){ + solve_array(); + } +} + +void solve_single(){ + ll n; + cin>>n; +} + +void solve_array(){ + ll n,k; + cin>>n>>k; + vl arr(n,0); + rev(arr,n); + set st; + map mpt; + rep(i,0,n){ + st.insert(arr[i]); + mpt[arr[i]]=1; + } + if(mpt.size()>k){ + cout<<-1< :: iterator it; + it=st.begin(); + rep(i,0,n){ + while(it!=st.end()){ + cout<<*it<<" "; + it++; + } + it=st.begin(); + } + cout<>n>>m; + vl a; + vvl arr(n,a); + rep(i,0,m){ + ll x,y; + cin>>x>>y; + arr[x-1].pb(y); + arr[y-1].pb(x); + } +} + +signed main(){ + make_it_fast(); + //seive(); + solve_mul(); + //solve_array(); + //solve_single(); + //solve_graph(); + return 0; +} \ No newline at end of file diff --git a/1360E_Polygon.bin b/1360E_Polygon.bin new file mode 100755 index 0000000000000000000000000000000000000000..67a808affe0a82cb866ee995372488aa151d2108 GIT binary patch literal 115102 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 Ze)kfw*j98eh#d_B^`Nrqb?AnlI3?#kZ|VR5 literal 0 HcmV?d00001 diff --git a/1360E_Polygon.cpp b/1360E_Polygon.cpp new file mode 100644 index 0000000..abde81a --- /dev/null +++ b/1360E_Polygon.cpp @@ -0,0 +1,330 @@ +// Vidur Goel + +//Codeforcees Handle: Vidurcodviz + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +using namespace chrono; + +void solve_array(); +void solve_single(); +void solve_mul(); + +typedef long long int ll; +typedef unsigned long long int ull; +typedef long double lld; +typedef vector vl; +typedef pair pll; +typedef vector vpll; +typedef vector vvl; + +#define make_it_fast() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); +#define rept(i, a, n) for (ll i = (a); i < (n); i++) +#define all(x) (x).begin(), (x).end() +#define sor(x) sort(all(x)) +#define sorr(x) sort(x.rbegin(),x.rend()) // this is in order to do sorting in descending order +#define lb lower_bound +#define ub upper_bound +#define pb push_back +#define ppb pop_back +#define mp make_pair +#define ff first +#define ss second +#define MOD 1000000007 +#define MOD1 998244353 +#define PI 3.141592653589793238462 +#define mset multiset // it contains multiple instances of the same value in ascending order +#define rep(i,a,b) for(ll i=a;i=a;i--) +#define nn endl +#define setbits(n) __builtin_popcount(n) + +vl seive(1000002,-1); + +string yup="YES"; +string nope="NO"; + +ll lmin(vl arr){return *min_element(arr.begin(),arr.end());} +ll lmax(vl arr){return *max_element(arr.begin(),arr.end());} + +ll fibonacci(ll n){ll a=0;ll b=1;ll c;if(n==0 || n==1){return n;}for(ll i=2;i>arr[i];}return;} +void prv(vl arr){rep(i,0,arr.size()){cout<1 that divides i actually + +vl segmented_seive(ll l,ll r){ + ll n=r; + ll num=(ll)ceil(sqrtl(n)); + vl is_prime(num,-1); + vl primes; + vl ans(r-l+1,-1); + for(ll i=2;i<=num;i++){ + if(is_prime[i]==-1){ + primes.pb(i); + for(ll j=i*i;j1 that divides l+i actually. + +void seiv(){ + seive[0]=0; + seive[1]=1; + rep(i,2,(ll)floor(sqrtl(1000002))+1){ + if(seive[i]==-1){ + seive[i]=-1; + for(ll j=i*i;j<1000002;j=j+i){ + if(seive[j]==-1){ + seive[j]=i; + } + } + } + } +} + +// Always return a positive integer +ll gcd(ll a,ll b){a=abs(a);b=abs(b);ll k=1;while(a%2==0 && b%2==0){k=2*k;a=a/2;b=b/2;}while(a%2==0){a=a/2;}while(b%2==0){b=b/2;}while(b!=0){a=a%b;swap(a,b);}return k*a;} + +// This implementation of extended Euclidean algorithm produces correct results for negative integers as well. +ll gcd(ll a,ll b,ll &x,ll &y){if(b == 0){x = 1;y = 0;return a;}ll x1, y1;ll d = gcd(b, a % b, x1, y1);x = y1;y = x1 - y1 * (a / b);return d;} + +// Always return a positive integer +ll lcm(ll a,ll b){a=abs(a);b=abs(b);return (a/gcd(a, b))*b;} + +// Binary Exponentiation +ll binpow(ll a,ll n){ll res=1;while(n!=0){if(n%2==0){a=a*a;n=n/2;}else{res=res*a;n=n-1;}}return res;} + +// Modulo Binary Exponentiation +ll binpowmod(ll a,ll n,ll m){ll res=1;while(n!=0){if(n%2==0){a=a*a%m;n=n/2;}else{res=res*a%m;n=n-1;}}return res;} + +// if we know that in Modulo Binary Exponentiation the m is going to be prime than even for n>>m we can speed it up +ll binpowmod_prime(ll a,ll n,ll m){ll res=1;while(n!=0){if(n%2==0){a=a*a%m;n=(n/2)%(m-1);}else{res=res*a%m;n=(n-1)%(m-1);}}return res;} + +ll add_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;} +ll mul_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;} +ll sub_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;} + +/* + A) double sqrt(double arg): It returns the square root of a number to type double. + B) float sqrtf(float arg): It returns the square root of a number to type float. + C) long double sqrtl(long double arg): It returns the square root of a number to type long double with more precision. + Advised to always use C) as always give correct one as other may halt in case of the big numbers + cbrt() in built function to give the cube root in float/double + abs() is used for the absolute value of a number + swap() function in c++ used to swap value of two elements of the same data type. + toupper() This function is used for converting a lowercase character to uppercase. + tolower() This function is used for converting an uppercase character to lowercase. + ceil() and floor() function + sort(vect.begin(),vect.end(), greater()); + reverse(vect.begin(), vect.end()); + count(first_iterator, last_iterator,x) – To count the occurrences of x in vector. + find(first_iterator, last_iterator, x) – Returns an iterator to the first occurrence of x in vector and points to last address of vector ((name_of_vector).end()) if element is not present in vector + + maximium value long long can take 9, 223, 372, 036, 854, 775, 807 + 2^63-1 + i.e, length of 19 only + maximium value long long can take 18, 446, 744, 073, 709, 551, 615 + 2^64-1 + i.e, length of 20 only + + lower_bound(v.begin(), v.end(), 6) these are the syntax + upper_bound(v.begin(), v.end(), 6) + + In multiset to remove all element of a same number use a.erase() + else to remove 1 lement only use ans.erase(ans.find(*it)) here it is the iterator + + priority_queue, greater > gquiz(arr, arr + n); + Here above is the syntax of the min_heap implementation with the help of the priority queue and here push() and pop() and top() are the main operations + priority_queue gquiz(arr, arr + n); + Here above is the syntax of the max_heap implementation with the help of the priority queue and here push() and pop() and top() are the main operations + + Whenever need to do the hashing always use the map which is the stl template of hashing never use the array indexing method. + map.find() function has complexity 0(logn) + map.insert function has complexity 0(1) + __builtin_popcount(n) - we use this function to count the number of 1's (set bits) in the number in binary form + __builtin_parity(n) - this is boolean function which return true if number of 1's in binary form of n are odd else returns false; + __builtin_clz(n) - eg: Binary form of 16 is 00000000 00000000 00000000 00010000 therefore will return the number of the leading zeroes in n here answer will be 27 + __builtin_ctz(n) - eg: Binary form of 20 is 00000000 00000000 00000000 00010100 therefore will return the number of the trailing zeroes in n here answer will be 2 + + An important info about the lower_bound used in various data structures + actually if number is present they will return te iterator pointing to that number in the data structure otherwise return the + next iterator in that data structure so depends whether sorted in ascending or descending order. + An important info about the upper_bound used in various data structures + is that it will return the iterator pointing to the next iterator to which the number should be there also depends on the sorting order + + Modulo operations, although we see them as O(1), are a lot slower than simpler operations like addition, subtraction or bitwise operations. So it would be better to avoid those. + + Always in the question related to the graph always access from the global variables +*/ + +struct dsu{ + vl parent; + vl size; + + dsu(ll n){ + size.resize(n+1); + parent.resize(n+1); + rep(i,0,n+1){ + make_set(i); + } + } + + void make_set(ll v){ + parent[v]=v; + size[v]=1; + } + + ll find_set(ll v){ + if(v==parent[v]){ + return v; + } + else{ + return parent[v]=find_set(parent[v]); + } + } + void union_set(ll a,ll b){ + a=find_set(a); + b=find_set(b); + if(a==b){ + return; + } + else{ + if(size[a]>=size[b]){ + parent[b]=a; + size[a] += size[b]; + } + else{ + parent[a]=b; + size[b] += size[a]; + } + } + } +}; + +bool mycompare(pll p1 ,pll p2){ + if(p1.first>test; + rep(i,0,test){ + solve_single(); + } +} + +void solve_single(){ + ll n; + cin>>n; + vector arr(n); + rep(i,0,n){ + cin>>arr[i]; + } + if(n==1){ + cout<>n; + vl arr(n,0); + rev(arr,n); +} + +void solve_graph(){ + ll n,m; + cin>>n>>m; + vl a; + vvl arr(n,a); + rep(i,0,m){ + ll x,y; + cin>>x>>y; + arr[x-1].pb(y); + arr[y-1].pb(x); + } +} + +signed main(){ + make_it_fast(); + //seive(); + solve_mul(); + //solve_array(); + //solve_single(); + //solve_graph(); + return 0; +} \ No newline at end of file diff --git a/515C_Drazil_and_Factorial.bin b/515C_Drazil_and_Factorial.bin new file mode 100755 index 0000000000000000000000000000000000000000..1d04d88717b12e49043de226d6b77a6706115548 GIT binary patch literal 127274 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 z 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 W-Dl;*)hAu{qbvWj<)C-_j{QH1 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +using namespace chrono; + +void solve_array(); +void solve_single(); +void solve_mul(); + +typedef long long int ll; +typedef unsigned long long int ull; +typedef long double lld; +typedef vector vl; +typedef pair pll; +typedef vector vpll; +typedef vector vvl; + +#define make_it_fast() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); +#define rept(i, a, n) for (ll i = (a); i < (n); i++) +#define all(x) (x).begin(), (x).end() +#define sor(x) sort(all(x)) +#define sorr(x) sort(x.rbegin(),x.rend()) // this is in order to do sorting in descending order +#define lb lower_bound +#define ub upper_bound +#define pb push_back +#define ppb pop_back +#define mp make_pair +#define ff first +#define ss second +#define MOD 1000000007 +#define MOD1 998244353 +#define PI 3.141592653589793238462 +#define mset multiset // it contains multiple instances of the same value in ascending order +#define rep(i,a,b) for(ll i=a;i=a;i--) +#define nn endl +#define setbits(n) __builtin_popcount(n) + +vl seive(1000002,-1); + +string yup="YES"; +string nope="NO"; + +ll lmin(vl arr){return *min_element(arr.begin(),arr.end());} +ll lmax(vl arr){return *max_element(arr.begin(),arr.end());} + +ll fibonacci(ll n){ll a=0;ll b=1;ll c;if(n==0 || n==1){return n;}for(ll i=2;i>arr[i];}return;} +void prv(vl arr){rep(i,0,arr.size()){cout<1 that divides i actually + +vl segmented_seive(ll l,ll r){ + ll n=r; + ll num=(ll)ceil(sqrtl(n)); + vl is_prime(num,-1); + vl primes; + vl ans(r-l+1,-1); + for(ll i=2;i<=num;i++){ + if(is_prime[i]==-1){ + primes.pb(i); + for(ll j=i*i;j1 that divides l+i actually. + +void seiv(){ + seive[0]=0; + seive[1]=1; + rep(i,2,(ll)floor(sqrtl(1000002))+1){ + if(seive[i]==-1){ + seive[i]=-1; + for(ll j=i*i;j<1000002;j=j+i){ + if(seive[j]==-1){ + seive[j]=i; + } + } + } + } +} + +// Always return a positive integer +ll gcd(ll a,ll b){a=abs(a);b=abs(b);ll k=1;while(a%2==0 && b%2==0){k=2*k;a=a/2;b=b/2;}while(a%2==0){a=a/2;}while(b%2==0){b=b/2;}while(b!=0){a=a%b;swap(a,b);}return k*a;} + +// This implementation of extended Euclidean algorithm produces correct results for negative integers as well. +ll gcd(ll a,ll b,ll &x,ll &y){if(b == 0){x = 1;y = 0;return a;}ll x1, y1;ll d = gcd(b, a % b, x1, y1);x = y1;y = x1 - y1 * (a / b);return d;} + +// Always return a positive integer +ll lcm(ll a,ll b){a=abs(a);b=abs(b);return (a/gcd(a, b))*b;} + +// Binary Exponentiation +ll binpow(ll a,ll n){ll res=1;while(n!=0){if(n%2==0){a=a*a;n=n/2;}else{res=res*a;n=n-1;}}return res;} + +// Modulo Binary Exponentiation +ll binpowmod(ll a,ll n,ll m){ll res=1;while(n!=0){if(n%2==0){a=a*a%m;n=n/2;}else{res=res*a%m;n=n-1;}}return res;} + +// if we know that in Modulo Binary Exponentiation the m is going to be prime than even for n>>m we can speed it up +ll binpowmod_prime(ll a,ll n,ll m){ll res=1;while(n!=0){if(n%2==0){a=a*a%m;n=(n/2)%(m-1);}else{res=res*a%m;n=(n-1)%(m-1);}}return res;} + +ll add_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;} +ll mul_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;} +ll sub_mod(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;} + +/* + A) double sqrt(double arg): It returns the square root of a number to type double. + B) float sqrtf(float arg): It returns the square root of a number to type float. + C) long double sqrtl(long double arg): It returns the square root of a number to type long double with more precision. + Advised to always use C) as always give correct one as other may halt in case of the big numbers + cbrt() in built function to give the cube root in float/double + abs() is used for the absolute value of a number + swap() function in c++ used to swap value of two elements of the same data type. + toupper() This function is used for converting a lowercase character to uppercase. + tolower() This function is used for converting an uppercase character to lowercase. + ceil() and floor() function + sort(vect.begin(),vect.end(), greater()); + reverse(vect.begin(), vect.end()); + count(first_iterator, last_iterator,x) – To count the occurrences of x in vector. + find(first_iterator, last_iterator, x) – Returns an iterator to the first occurrence of x in vector and points to last address of vector ((name_of_vector).end()) if element is not present in vector + + maximium value long long can take 9, 223, 372, 036, 854, 775, 807 + 2^63-1 + i.e, length of 19 only + maximium value long long can take 18, 446, 744, 073, 709, 551, 615 + 2^64-1 + i.e, length of 20 only + + lower_bound(v.begin(), v.end(), 6) these are the syntax + upper_bound(v.begin(), v.end(), 6) + + In multiset to remove all element of a same number use a.erase() + else to remove 1 lement only use ans.erase(ans.find(*it)) here it is the iterator + + priority_queue, greater > gquiz(arr, arr + n); + Here above is the syntax of the min_heap implementation with the help of the priority queue and here push() and pop() and top() are the main operations + priority_queue gquiz(arr, arr + n); + Here above is the syntax of the max_heap implementation with the help of the priority queue and here push() and pop() and top() are the main operations + + Whenever need to do the hashing always use the map which is the stl template of hashing never use the array indexing method. + map.find() function has complexity 0(logn) + map.insert function has complexity 0(1) + __builtin_popcount(n) - we use this function to count the number of 1's (set bits) in the number in binary form + __builtin_parity(n) - this is boolean function which return true if number of 1's in binary form of n are odd else returns false; + __builtin_clz(n) - eg: Binary form of 16 is 00000000 00000000 00000000 00010000 therefore will return the number of the leading zeroes in n here answer will be 27 + __builtin_ctz(n) - eg: Binary form of 20 is 00000000 00000000 00000000 00010100 therefore will return the number of the trailing zeroes in n here answer will be 2 + + An important info about the lower_bound used in various data structures + actually if number is present they will return te iterator pointing to that number in the data structure otherwise return the + next iterator in that data structure so depends whether sorted in ascending or descending order. + An important info about the upper_bound used in various data structures + is that it will return the iterator pointing to the next iterator to which the number should be there also depends on the sorting order + + Modulo operations, although we see them as O(1), are a lot slower than simpler operations like addition, subtraction or bitwise operations. So it would be better to avoid those. + + Always in the question related to the graph always access from the global variables +*/ + +struct dsu{ + vl parent; + vl size; + + dsu(ll n){ + size.resize(n+1); + parent.resize(n+1); + rep(i,0,n+1){ + make_set(i); + } + } + + void make_set(ll v){ + parent[v]=v; + size[v]=1; + } + + ll find_set(ll v){ + if(v==parent[v]){ + return v; + } + else{ + return parent[v]=find_set(parent[v]); + } + } + void union_set(ll a,ll b){ + a=find_set(a); + b=find_set(b); + if(a==b){ + return; + } + else{ + if(size[a]>=size[b]){ + parent[b]=a; + size[a] += size[b]; + } + else{ + parent[a]=b; + size[b] += size[a]; + } + } + } +}; + +bool mycompare(pll p1 ,pll p2){ + if(p1.first>test; + rep(i,0,test){ + + } +} + +void solve_single(){ + ll n; + cin>>n; + string s; + cin>>s; + map mpt; + rep(i,0,n){ + ll k=(ll)s[i]-'0'; + if(k==0 || k==1){ + continue; + } + else{ + while(k!=1){ + ll num=k; + rep(i,2,8){ + while(num%i==0){ + mpt[i]++; + num=num/i; + } + } + k--; + } + } + } + vl answer; + if(mpt[7]!=0){ + while(mpt[7]!=0){ + answer.pb(7); + mpt[7]--; + mpt[2]-=4; + mpt[3]-=2; + mpt[5]--; + } + } + if(mpt[5]!=0){ + while(mpt[5]!=0){ + answer.pb(5); + mpt[2]-=3; + mpt[3]-=1; + mpt[5]--; + } + } + if(mpt[3]!=0){ + while(mpt[3]!=0){ + answer.pb(3); + mpt[2]-=1; + mpt[3]-=1; + } + } + if(mpt[2]!=0){ + while(mpt[2]!=0){ + answer.pb(2); + mpt[2]--; + } + } + sor(answer); + rep(i,0,answer.size()){ + cout<>n; + vl arr(n,0); + rev(arr,n); +} + +void solve_graph(){ + ll n,m; + cin>>n>>m; + vl a; + vvl arr(n,a); + rep(i,0,m){ + ll x,y; + cin>>x>>y; + arr[x-1].pb(y); + arr[y-1].pb(x); + } +} + +signed main(){ + make_it_fast(); + //seive(); + //solve_mul(); + //solve_array(); + solve_single(); + //solve_graph(); + return 0; +} \ No newline at end of file