From 18148b3f0dfd332933f7d41a2d39042df7e9f095 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:30:50 +0530 Subject: [PATCH 01/31] Add December 1 - Cricmetric --- December 01/C++_Bottleneck44.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 December 01/C++_Bottleneck44.cpp diff --git a/December 01/C++_Bottleneck44.cpp b/December 01/C++_Bottleneck44.cpp new file mode 100644 index 0000000..013e689 --- /dev/null +++ b/December 01/C++_Bottleneck44.cpp @@ -0,0 +1,19 @@ +#include + +using namespace std; + +int main() +{ + int n, total = 0, a, maxi = 0, pos; + cin >> n; + for(int i = 0; i> a; + total += a; + if(maxi < a){ + pos = i; + maxi = a; + } + } + cout << total << endl << pos; + return 0; +} From f3d4f13628f9bb79a2ae31a2ffbdecfb63b0d022 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:31:37 +0530 Subject: [PATCH 02/31] Add December 2 - Shopper's Choice --- December 02/C++_Bottleneck44.cpp | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 December 02/C++_Bottleneck44.cpp diff --git a/December 02/C++_Bottleneck44.cpp b/December 02/C++_Bottleneck44.cpp new file mode 100644 index 0000000..55aa5bd --- /dev/null +++ b/December 02/C++_Bottleneck44.cpp @@ -0,0 +1,36 @@ +#include + +using namespace std; + +vector v; +unordered_map filter(string s){ + int temp = 0; + unordered_map mp; + for(int i = 1; i= '0' && s[i] <= '9'){ + temp = (temp*10)+int(s[i] - '0'); + } else { + mp[temp]++; + if(!count(v.begin(), v.end(), temp)) v.push_back(temp); + temp = 0; + } + } + return mp; +} + +int main() +{ + string s; + cin >> s; + unordered_map mp = filter(s); + cout << '['; + for(int i = 0; i < v.size(); i++){ + if(i == v.size()-1){ + cout << mp[v[i]]; + break; + } + cout << mp[v[i]] << ','; + } + cout << "]"; + return 0; +} From 8f16c7140ed56c9c665b0e837c0da531d03dea6d Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:32:18 +0530 Subject: [PATCH 03/31] Add December 3 - Sunburnt --- December 03/C++_Bottleneck44.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 December 03/C++_Bottleneck44.cpp diff --git a/December 03/C++_Bottleneck44.cpp b/December 03/C++_Bottleneck44.cpp new file mode 100644 index 0000000..1c38661 --- /dev/null +++ b/December 03/C++_Bottleneck44.cpp @@ -0,0 +1,19 @@ +#include + +using namespace std; + +int main() +{ + int n; + cin >> n; + int maxi = 0, a, ans = 0; + for(int i =0; i> a; + if(maxi < a){ + maxi = a; + ans++; + } + } + cout << ans; + return 0; +} From 5115e092c18b5b6102d1d47dda1d1b45a1dd3c19 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:32:43 +0530 Subject: [PATCH 04/31] Add December 4 - Mirror Magic --- December 04/C++_Bottleneck44.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 December 04/C++_Bottleneck44.cpp diff --git a/December 04/C++_Bottleneck44.cpp b/December 04/C++_Bottleneck44.cpp new file mode 100644 index 0000000..82542f7 --- /dev/null +++ b/December 04/C++_Bottleneck44.cpp @@ -0,0 +1,27 @@ +#include + +using namespace std; + +int main() +{ + string s; + cin >> s; + char temp = s[0]; + string ans = ""; + transform(s.begin(), s.end(), s.begin(), ::tolower); + for(int i = 1; i< s.size(); i++){ + if(s[i] == temp){ + cout << s[i] << s[i]; + exit(0); + } + temp = s[i]; + } + for(int i=1; i Date: Sat, 13 Jan 2024 15:33:09 +0530 Subject: [PATCH 05/31] Add December 5 - Peaky Blinders --- December 05/C++_Bottleneck44.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 December 05/C++_Bottleneck44.cpp diff --git a/December 05/C++_Bottleneck44.cpp b/December 05/C++_Bottleneck44.cpp new file mode 100644 index 0000000..97a4c6c --- /dev/null +++ b/December 05/C++_Bottleneck44.cpp @@ -0,0 +1,21 @@ +#include + +using namespace std; + +int main(){ + int ans = 0, n, total = 0; + cin >> n; + vector v; + for(int i = 0; i> a; + v.push_back(a); + total += a; + } + int avg = total/n; + for(auto i : v){ + if(i >= avg) ans += i; + } + cout << ans; + return 0; +} From f367498185e1cce8a75acf2706bcb03af07710fa Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:33:38 +0530 Subject: [PATCH 06/31] Add December 6 - The Lost Algorithm Scrolls --- December 06/C++_Bottleneck44.cpp | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 December 06/C++_Bottleneck44.cpp diff --git a/December 06/C++_Bottleneck44.cpp b/December 06/C++_Bottleneck44.cpp new file mode 100644 index 0000000..585a2b4 --- /dev/null +++ b/December 06/C++_Bottleneck44.cpp @@ -0,0 +1,36 @@ +#include + +using namespace std; + +int main() +{ + int n; + cin >> n; + vector v; + for(int i = 0; i> s; + v.push_back(s); + } + vector ans; + ans.push_back(v[0]); + for(int i = 1; i 1) break; + int temp = 0; + if(abs(s1-s2) == 1) temp++; + for(int j = 0; j Date: Sat, 13 Jan 2024 15:34:05 +0530 Subject: [PATCH 07/31] Add December 7 - Baby Blocks --- December 07/C++_Bottleneck44.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 December 07/C++_Bottleneck44.cpp diff --git a/December 07/C++_Bottleneck44.cpp b/December 07/C++_Bottleneck44.cpp new file mode 100644 index 0000000..dee7448 --- /dev/null +++ b/December 07/C++_Bottleneck44.cpp @@ -0,0 +1,19 @@ +#include + +using namespace std; + +bool rectangleInCircle(float h, float b, float r){ + float d = sqrt(pow(h,2)+pow(b,2)); + if(d == 2*r) return true; + return false; +} + +int main() +{ + float h,b,r; + cout<< "Enter the height, breadth of rectangle and radius of circle: "; + cin >> h >> b >> r; + if(rectangleInCircle(h, b, r)) cout << "true"; + else cout << "false"; + return 0; +} From f7f69e2020c34f07001ed631db91ebf2e4663008 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:34:35 +0530 Subject: [PATCH 08/31] Add December 8 - The Enchanted Forest --- December 08/C++_Bottleneck44.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 December 08/C++_Bottleneck44.cpp diff --git a/December 08/C++_Bottleneck44.cpp b/December 08/C++_Bottleneck44.cpp new file mode 100644 index 0000000..5cab296 --- /dev/null +++ b/December 08/C++_Bottleneck44.cpp @@ -0,0 +1,28 @@ +#include +using namespace std; + +int main() { + int n; + cin >> n; + vector> square(n, vector(n, -1)); + int x = (n / 2), y = n - 1; + for(int i=1; i<=n*n; i++) { + square[x][y] = i; + if(i % n == 0) y--; + else { + x--; + y++; + } + x += n; + x %= n; + y += n; + y %= n; + } + for(auto i : square) { + for(auto j : i) { + cout<< j << " "; + } + cout<< endl; + } + return 0; +} From 5abf3b43fd4e36552a44f9be32aadf855351b25a Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:35:01 +0530 Subject: [PATCH 09/31] Add December 9 - Camels on a String! --- December 09/C++_Bottleneck44.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 December 09/C++_Bottleneck44.cpp diff --git a/December 09/C++_Bottleneck44.cpp b/December 09/C++_Bottleneck44.cpp new file mode 100644 index 0000000..917b858 --- /dev/null +++ b/December 09/C++_Bottleneck44.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; + +int main() +{ + string s; + cin >> s; + int ans = 0; + for(int i = 0; i= 'A' && s[i] <= 'Z') ans++; + } + cout << ans; + return 0; +} From 5f2a3e12813406fa5f32e5a6768da65f4801bf37 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:35:56 +0530 Subject: [PATCH 10/31] Add December 10 - Forgot Password. --- December 10/SQL_Bottleneck44.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 December 10/SQL_Bottleneck44.sql diff --git a/December 10/SQL_Bottleneck44.sql b/December 10/SQL_Bottleneck44.sql new file mode 100644 index 0000000..cb42d4d --- /dev/null +++ b/December 10/SQL_Bottleneck44.sql @@ -0,0 +1,10 @@ +create database e; +use e; +CREATE table emp ( + empno int PRIMARY KEY, + empname varchar(50) +); +INSERT INTO emp VALUES (1, 'December'); +INSERT INTO emp VALUES (2, 'Algorithm'); +SELECT substring(empname,4,13) from emp; +SELECT substring(empname,2,2) from emp; From 124021a534972b891b7c551946d34c441229cdc7 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:36:31 +0530 Subject: [PATCH 11/31] Add December 11 - Coder of Conversions --- December 11/C++_Bottleneck44.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 December 11/C++_Bottleneck44.cpp diff --git a/December 11/C++_Bottleneck44.cpp b/December 11/C++_Bottleneck44.cpp new file mode 100644 index 0000000..7cb57d0 --- /dev/null +++ b/December 11/C++_Bottleneck44.cpp @@ -0,0 +1,11 @@ +#include +using namespace std; + +int main() +{ + int n1, n2; + cout << "Enter the two numbers: "; + cin >> n1 >> n2; + cout << bitset<8>(n1+n2).to_string(); + return 0; +} From 8d23917e41ae045c72b4fa6cb699a207790f31bd Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:37:30 +0530 Subject: [PATCH 12/31] Add December 12 - The Heist --- December 12/C++_Bottleneck44.cpp | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 December 12/C++_Bottleneck44.cpp diff --git a/December 12/C++_Bottleneck44.cpp b/December 12/C++_Bottleneck44.cpp new file mode 100644 index 0000000..aa49dbd --- /dev/null +++ b/December 12/C++_Bottleneck44.cpp @@ -0,0 +1,36 @@ +#include + +using namespace std; + +int main() +{ + vector> box; + for(int i = 0; i<3; i++){ + cout << "Enter the No. of jewelry for Box" << i+1 << " :"; + int n; + cin >> n; + cout << "Enter the jewelry for Box" << i+1 << " :"; + for(int j = 0; j> s; + transform(s.begin(), s.end(), s.begin(), ::tolower); + box.push_back(make_pair(s, i+1)); + } + } + sort(box.begin(), box.end()); + int l = 0, h = box.size()-1; + while(l <= h){ + int m = (l+h)/2; + if(box[m].first == "gold"){ + cout << "Box" << box[m].second << " Contains the Gold"; + exit(0); + } + if(box[m].first > "gold"){ + h = m-1; + } else { + l = m+1; + } + } + cout << "Gold is not present"; + return 0; +} From 646719e13472da5f333d9a98e31dcf5ac89b2e8a Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:37:56 +0530 Subject: [PATCH 13/31] Add December 13 - Call Cipher --- December 13/C++_Bottleneck44.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 December 13/C++_Bottleneck44.cpp diff --git a/December 13/C++_Bottleneck44.cpp b/December 13/C++_Bottleneck44.cpp new file mode 100644 index 0000000..a242ed2 --- /dev/null +++ b/December 13/C++_Bottleneck44.cpp @@ -0,0 +1,24 @@ +#include +using namespace std; + +string textToNum(string s){ + for(int i = 0; i= 'A' && s[i] <= 'C') s[i] = '2'; + else if(s[i] >= 'D' && s[i] <= 'F') s[i] = '3'; + else if(s[i] >= 'G' && s[i] <= 'I') s[i] = '4'; + else if(s[i] >= 'J' && s[i] <= 'L') s[i] = '5'; + else if(s[i] >= 'M' && s[i] <= 'O') s[i] = '6'; + else if(s[i] >= 'P' && s[i] <= 'S') s[i] = '7'; + else if(s[i] >= 'T' && s[i] <= 'V') s[i] = '8'; + else if(s[i] >= 'W' && s[i] <= 'Z') s[i] = '9'; + } + return s; +} + +int main() +{ + string s; + cin >> s; + cout << textToNum(s); + return 0; +} From 8f0811c0bd9129019c7e997886aadd78315ab1f0 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:39:01 +0530 Subject: [PATCH 14/31] Add December 14 - Call of Justice --- December 14/C++_Bottleneck44.cpp | 154 +++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 December 14/C++_Bottleneck44.cpp diff --git a/December 14/C++_Bottleneck44.cpp b/December 14/C++_Bottleneck44.cpp new file mode 100644 index 0000000..c92cdc3 --- /dev/null +++ b/December 14/C++_Bottleneck44.cpp @@ -0,0 +1,154 @@ +#include +using namespace std; + +// Tree Node +struct Node +{ + int data; + Node* left; + Node* right; +}; + +Node* newNode(int val) +{ + Node* temp = new Node; + temp->data = val; + temp->left = NULL; + temp->right = NULL; + + return temp; +} + +Node* buildTree(string str) +{ + if(str.length() == 0 || str[0] == 'N') + return NULL; + + vector ip; + + istringstream iss(str); + for(string str; iss >> str; ) + ip.push_back(str); + + Node* root = newNode(stoi(ip[0])); + + queue queue; + queue.push(root); + + int i = 1; + while(!queue.empty() && i < ip.size()) { + + Node* currNode = queue.front(); + queue.pop(); + + string currVal = ip[i]; + + if(currVal != "N") { + + currNode->left = newNode(stoi(currVal)); + + queue.push(currNode->left); + } + + i++; + if(i >= ip.size()) + break; + currVal = ip[i]; + if(currVal != "N") { + currNode->right = newNode(stoi(currVal)); + + queue.push(currNode->right); + } + i++; + } + + return root; +} + +class Solution +{ +private: + +public: + void solve(Node* root, Node* &tgt, unordered_map &parent, int target){ + queue q; + q.push(root); + while(q.size() > 0){ + Node* curr = q.front(); + q.pop(); + if(curr->data == target) tgt = curr; + if(curr->left){ + parent[curr->left] = curr; + q.push(curr->left); + } + if(curr->right){ + parent[curr->right] = curr; + q.push(curr->right); + } + } + } + + vector KDistanceNodes(Node* root, int target , int k) + { + unordered_map parent; + Node* tgt = NULL; + solve(root, tgt, parent, target); + unordered_map visited; + visited[tgt] = true; + int lvl = 0; + queue q; + q.push(tgt); + while(!q.empty()){ + if(lvl++ == k) break; + int s = q.size(); + for(int i =0; ileft && !visited[curr->left]){ + q.push(curr->left); + visited[curr->left] = true; + } + if(curr->right && !visited[curr->right]){ + q.push(curr->right); + visited[curr->right] = true; + } + if(parent[curr] && !visited[parent[curr]]){ + q.push(parent[curr]); + visited[parent[curr]] = true; + } + } + } + vector res; + while(q.size() > 0){ + Node* curr = q.front(); + q.pop(); + res.push_back(curr->data); + } + sort(res.begin(), res.end()); + return res; + } +}; + +int main() +{ + Solution x = Solution(); + string s; + /*Give input as: + 17 8 27 4 14 N N N N 10 16 + 8 + 2 + */ + getline(cin,s); + Node* head = buildTree(s); + + int target, k; + cin>> target >> k; + getchar(); + + vector res = x.KDistanceNodes(head, target, k); + + for( int i=0; i Date: Sat, 13 Jan 2024 15:39:27 +0530 Subject: [PATCH 15/31] Add December 15 - Subsequence Sorcery --- December 15/C++_Bottleneck44.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 December 15/C++_Bottleneck44.cpp diff --git a/December 15/C++_Bottleneck44.cpp b/December 15/C++_Bottleneck44.cpp new file mode 100644 index 0000000..f2401c8 --- /dev/null +++ b/December 15/C++_Bottleneck44.cpp @@ -0,0 +1,17 @@ +#include + +using namespace std; + +int main() +{ + string s; + cin >> s; + int ans=1; + vector v(26, 0); + for(char c:s){ + ans=ans*2 - v[c-'a']; + v[c-'a']++; + } + cout << ans; + return 0; +} From ed9a30124f24ccd63b982a3bc26f04f6648260d5 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:40:04 +0530 Subject: [PATCH 16/31] Add December 16 - Outbreak Dynamics --- December 16/C++_Bottleneck44.cpp | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 December 16/C++_Bottleneck44.cpp diff --git a/December 16/C++_Bottleneck44.cpp b/December 16/C++_Bottleneck44.cpp new file mode 100644 index 0000000..cbfde59 --- /dev/null +++ b/December 16/C++_Bottleneck44.cpp @@ -0,0 +1,69 @@ +#include + +using namespace std; + +int main() +{ + int n, m; + cin >> n >> m; + vector> grid( n , vector (m, 0)); + for(int i = 0; i> k; + grid[i][j] = k; + } + } + int t = -1; + queue> q; + int z = 0, h = 0; + for(int i=0; i=0 && grid[i-1][j]==0){ + q.push({i-1, j}); + rl++; + grid[i-1][j] = -1; + } + //down + if(i+1=0 && grid[i][j-1] == 0){ + q.push({i, j-1}); + rl++; + grid[i][j-1] = -1; + } + //right + if(j+1 Date: Sat, 13 Jan 2024 15:40:42 +0530 Subject: [PATCH 17/31] Add December 17 - Bookshelf Dilemma --- December 17/C++_Bottleneck44.cpp | 95 ++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 December 17/C++_Bottleneck44.cpp diff --git a/December 17/C++_Bottleneck44.cpp b/December 17/C++_Bottleneck44.cpp new file mode 100644 index 0000000..5a40f96 --- /dev/null +++ b/December 17/C++_Bottleneck44.cpp @@ -0,0 +1,95 @@ +#include +using namespace std; + +struct Node +{ + int data; + Node* next; + + Node(int val) + { + data = val; + next = NULL; + } +}; + +void loopHere(Node* head, Node* tail, int position) +{ + if(position==0) return; + + Node* walk = head; + for(int i=1; inext; + tail->next = walk; +} + +bool isLoop(Node* head) +{ + if(!head) return false; + + Node* fast = head->next; + Node* slow = head; + + while( fast != slow) + { + if( !fast || !fast->next ) return false; + fast=fast->next->next; + slow=slow->next; + } + + return true; +} + +void removeLoop(Node* head){ + Node* slow = head; + Node* fast = head; + + while(slow->next && fast->next && fast->next->next) { + slow = slow->next; + fast = fast->next->next; + if (slow == fast) break; + } + if( slow != fast || slow == NULL || fast == NULL) return; + + slow = head; + while(slow != fast) { + slow = slow->next; + fast = fast->next; + } + Node* p = slow->next; + while(p->next != slow) + p = p->next; + p->next = NULL; +} + +int main() +{ + unordered_mapmyMap; + + int n, num; + cin>>n; + + Node *head, *tail; + cin>> num; + head = tail = new Node(num); + + myMap[head]=num; + + for(int i=0 ; i> num; + tail->next = new Node(num); + tail = tail->next; + myMap[tail]=num; + } + + int pos; + cin>> pos; + loopHere(head,tail,pos); + + if( isLoop(head)) removeLoop(head); + while(head != NULL){ + cout << head->data << " "; + head = head->next; + } + return 0; +} From 5938e7a006cbafed690efbd147d6ae7479d3cf3b Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:41:17 +0530 Subject: [PATCH 18/31] Add December 18 - It's Christmas Season --- December 18/C++_Bottleneck44.cpp | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 December 18/C++_Bottleneck44.cpp diff --git a/December 18/C++_Bottleneck44.cpp b/December 18/C++_Bottleneck44.cpp new file mode 100644 index 0000000..9d11618 --- /dev/null +++ b/December 18/C++_Bottleneck44.cpp @@ -0,0 +1,69 @@ +#include +using namespace std; + +const int maxN = 1e5 + 5; +const int MOD = 1e9 + 7; +int n, x, cnt; +long long a[maxN], ans[maxN], dp[maxN], tot, f[maxN], g[maxN], inv[maxN]; +vector adj[maxN]; + +void dfs(int u, int p) { + for (auto v : adj[u]) { + if (v != p) { + dfs(v, u); + dp[u] = (dp[u] + dp[v]) % x; + } + } + if (p > 0 && dp[u] == 0) cnt++; +} + +long long temp(long long n, long long k) { + if (n < 0 || k < 0) return 0; + long long ans = f[n]; + ans *= g[n - k]; ans %= MOD; + ans *= g[k]; ans %= MOD; + return ans; +} + +int main () { + f[0] = 1; f[1] = 1; g[0] = 1; g[1] = 1; + inv[1] = 1; + for (int i = 2; i < maxN; i ++) { + inv[i] = inv[MOD % i] * (MOD - MOD / i) % MOD; + } + for (int i = 2; i < maxN; i ++) { + f[i] = f[i - 1] * i % MOD; + g[i] = g[i - 1] * inv[i] % MOD; + } + int T; + cin >> T; + while (T--) { + + cin >> n >> x; + for (int i = 0; i <= n; i++) ans[i] = 0, dp[i] = 0, adj[i].clear(); + tot = 0; + cnt = 0; + + for (int i = 1; i <= n; i++) { + cin >> a[i]; + dp[i] = a[i] % x; + tot += a[i]; + } + for (int i = 0; i < n - 1; i++) { + int u, v; cin >> u >> v; + adj[u].push_back(v); + adj[v].push_back(u); + } + if (tot % x) { + for (int i = 0; i < n; i++) cout << "0" << " \n"[i == n - 1]; + continue; + } + dfs(1, 0); + for (int i = 0; i < n; i++) { + if (i <= cnt) cout << temp(cnt, i) << ' '; + else cout << "0 "; + } + cout << '\n'; + } + return 0; +} From 53ee2d0f4cd848ff3c7fd389977cfe13599754fe Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:41:48 +0530 Subject: [PATCH 19/31] Add December 19 - Symbolic Sum --- December 19/C++_Bottleneck44.cpp | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 December 19/C++_Bottleneck44.cpp diff --git a/December 19/C++_Bottleneck44.cpp b/December 19/C++_Bottleneck44.cpp new file mode 100644 index 0000000..2fbc0bf --- /dev/null +++ b/December 19/C++_Bottleneck44.cpp @@ -0,0 +1,42 @@ +#include + +using namespace std; + +int main() +{ + int n, k; + cout << "Enter the No. of elements: "; + cin >> n; + cout << "Enter the k: "; + cin >> k; + cout << "Enter the sequence of elements: "; + vector s; + for(int i = 0; i> temp; + s.push_back(temp); + } + reverse(s.begin(), s.end()); + int count = 0, temp = 0, ans = 0, sum = 0; + vector visited (k, 0); + for(int i = 0; i Date: Sat, 13 Jan 2024 15:42:19 +0530 Subject: [PATCH 20/31] Add December 20 - Treasure Hunt In The Isles --- December 20/C++_Bottleneck44.cpp | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 December 20/C++_Bottleneck44.cpp diff --git a/December 20/C++_Bottleneck44.cpp b/December 20/C++_Bottleneck44.cpp new file mode 100644 index 0000000..526c3d1 --- /dev/null +++ b/December 20/C++_Bottleneck44.cpp @@ -0,0 +1,41 @@ +#include + +using namespace std; + +vector shortestPath(int n, string start, string end, map> graph){ + priority_queue>, vector>>, greater>>> pq; + for (auto entry : graph[start]) { + pq.push({entry.second, {start, entry.first}}); + } + vector res; + while(!pq.empty() && pq.top().second.back() != end){ + auto temp = pq.top(); + pq.pop(); + for (auto entry : graph[temp.second.back()]) { + vector v = temp.second; + v.push_back(entry.first); + pq.push(make_pair(entry.second+temp.first, v)); + } + } + if(pq.size()) return pq.top().second; + else return {"-1"}; +} + +int main() { + int n; + cin >> n; + map> graph; + for(int i=0; i> a >> b >> c; + graph[a][b] = c; + } + string start, end; + cin >> start >> end; + vector res = shortestPath(n, start, end, graph); + for (auto x : res) { + cout << x << " "; + } + return 0; +} From d39f9a8ee5dc3a0c15c587cf7e8fea45a884932d Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:42:45 +0530 Subject: [PATCH 21/31] Add December 21 - Riddle Me This --- December 21/C++_Bottleneck44.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 December 21/C++_Bottleneck44.cpp diff --git a/December 21/C++_Bottleneck44.cpp b/December 21/C++_Bottleneck44.cpp new file mode 100644 index 0000000..30fadd4 --- /dev/null +++ b/December 21/C++_Bottleneck44.cpp @@ -0,0 +1,16 @@ +#include + +using namespace std; + +int main() { + string s; + cin >> s; + int n; + cout << "Enter the shift:"; + cin >> n; + for(int i = 0; i Date: Sat, 13 Jan 2024 15:43:33 +0530 Subject: [PATCH 22/31] Add December 22 - Rotten Oranges --- December 22/C++_Bottleneck44.cpp | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 December 22/C++_Bottleneck44.cpp diff --git a/December 22/C++_Bottleneck44.cpp b/December 22/C++_Bottleneck44.cpp new file mode 100644 index 0000000..dfde5f8 --- /dev/null +++ b/December 22/C++_Bottleneck44.cpp @@ -0,0 +1,72 @@ +#include +using namespace std; + +int orangesRotting(vector>& grid) { + int n = grid.size(); + int m = grid[0].size(); + int t = -1; + queue> q; + int r = 0, f = 0; + for(int i=0; i=0 && grid[i-1][j]==1){ + q.push({i-1, j}); + rl++; + grid[i-1][j] = -1; + } + //down + if(i+1=0 && grid[i][j-1] == 1){ + q.push({i, j-1}); + rl++; + grid[i][j-1] = -1; + } + //right + if(j+1> n >> m; + vector>grid(n, vector(m, -1)); + for(int i = 0; i < n; i++){ + for(int j = 0; j < m; j++){ + cin >> grid[i][j]; + } + } + int ans = orangesRotting(grid); + cout << ans << "\n"; + return 0; +} From bc0f25284414a74b08d300a48d8417df0f9da1ac Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:45:48 +0530 Subject: [PATCH 23/31] Add December 23 - Dominoes --- December 23/C++_Bottleneck44.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 December 23/C++_Bottleneck44.cpp diff --git a/December 23/C++_Bottleneck44.cpp b/December 23/C++_Bottleneck44.cpp new file mode 100644 index 0000000..c401219 --- /dev/null +++ b/December 23/C++_Bottleneck44.cpp @@ -0,0 +1,30 @@ +#include +using namespace std; + +int main() { + vector> vec; + int n; + cin>>n; + for(int i=0;i>x>>y; + vec.push_back({x,y}); + } + int s1=0,s2=0; + bool s(false); + for(auto &it : vec){ + int x = it.first; + int y = it.second; + if(n==1 and (x%2 + y%2 == 1)){ + cout<<-1< Date: Sat, 13 Jan 2024 15:46:18 +0530 Subject: [PATCH 24/31] Add December 24 - Golden Rule Violation --- December 24/C++_Bottleneck44.cpp | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 December 24/C++_Bottleneck44.cpp diff --git a/December 24/C++_Bottleneck44.cpp b/December 24/C++_Bottleneck44.cpp new file mode 100644 index 0000000..ca4a07d --- /dev/null +++ b/December 24/C++_Bottleneck44.cpp @@ -0,0 +1,57 @@ +#include +using namespace std; + +long long merge(vector &array,int s,int e){ + int i = s; + int m = s+(e-s)/2; + int j = m + 1; + long long ans=0; + int l=i; + for(int k=j;k<=e;k++){ + while(l<=m && array[l]<=array[k])l++; + ans+=(m-l+1); + } + vector temp; + while(i<=m and j<=e){ + if(array[i] <= array[j]){ + temp.push_back(array[i++]); + } + else{ + temp.push_back(array[j++]); + } + } + while(i<=m){ + temp.push_back(array[i++]); + } + while(j<=e){ + temp.push_back(array[j++]); + } + int k = 0 ; + for(int idx = s; idx <=e ;idx++){ + array[idx] = temp[k++]; + } + return ans; +} + +long long mergesort(vector &arr,int s,int e){ + if(s>=e){ + return 0; + } + int mid = (s+e)/2; + long long ans=0; + ans+=mergesort(arr,s,mid); + ans+=mergesort(arr,mid+1,e); + ans+=merge(arr,s,e); + return ans; +} + +int main() { + int n; + cin>>n; + vectora(n); + for(int i = 0; i < n; i++){ + cin>>a[i]; + } + cout< Date: Sat, 13 Jan 2024 15:46:49 +0530 Subject: [PATCH 25/31] Add December 25 - Harmony Hurdle --- December 25/C++_Bottleneck44.cpp | 73 ++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 December 25/C++_Bottleneck44.cpp diff --git a/December 25/C++_Bottleneck44.cpp b/December 25/C++_Bottleneck44.cpp new file mode 100644 index 0000000..640542d --- /dev/null +++ b/December 25/C++_Bottleneck44.cpp @@ -0,0 +1,73 @@ +#include + +using namespace std; + + +vector findMinTime(int numTasks, map>& taskGraph) { + vector taskTimes(numTasks + 1, 0); + vector incomingCounts(numTasks + 1, 0); + queue readyTasks; + + for (int task = 1; task <= numTasks; ++task) { + for (int dep : taskGraph[task]) { + incomingCounts[dep]++; + } + } + + for (int task = 1; task <= numTasks; ++task) { + if (incomingCounts[task] == 0) { + readyTasks.push(task); + taskTimes[task] = 1; + } + } + + while (!readyTasks.empty()) { + int currentTask = readyTasks.front(); + readyTasks.pop(); + + for (int dependentTask : taskGraph[currentTask]) { + incomingCounts[dependentTask]--; + if (incomingCounts[dependentTask] == 0) { + readyTasks.push(dependentTask); + taskTimes[dependentTask] = taskTimes[currentTask] + 1; + } + } + } + + taskTimes.erase(taskTimes.begin()); + return taskTimes; +} + +int main() { + int numTasks; + cout << "Enter the number of tasks: "; + cin >> numTasks; + + vector tasks(numTasks); + cout << "Enter the tasks: "; + for (int& task : tasks) { + cin >> task; + } + + map> taskGraph; + cout << "Enter the dependencies: "; + for (int i = 0; i < numTasks; ++i) { + int dependentTask; + vector dependencies; + + cin >> dependentTask; + while (cin.peek() != '\n') { + int dependency; + cin >> dependency; + dependencies.push_back(dependency); + } + + taskGraph[dependentTask] = dependencies; + } + + vector minTimes = findMinTime(numTasks, taskGraph); + + cout << *max_element(minTimes.begin(), minTimes.end()); + + return 0; +} From 6506d9827f774a27f7585099f79c3cec9ceb8c42 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:47:22 +0530 Subject: [PATCH 26/31] Add December 26 - The Phantom Cycle --- December 26/C++_Bottleneck44.cpp | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 December 26/C++_Bottleneck44.cpp diff --git a/December 26/C++_Bottleneck44.cpp b/December 26/C++_Bottleneck44.cpp new file mode 100644 index 0000000..465aa44 --- /dev/null +++ b/December 26/C++_Bottleneck44.cpp @@ -0,0 +1,57 @@ +#include +using namespace std; + +struct Node +{ + int data; + Node* next; + + Node(int val) + { + data = val; + next = NULL; + } +}; + + +bool detectLoop(Node* head){ + Node* slow = head, *fast = head; + + while(fast!=NULL && fast->next!=NULL){ + fast = fast->next->next; + slow = slow->next; + if(fast == slow){ + return true; + } + } + return false; +} + + +int main(){ + int n, num; + cin>>n; + vector v; + Node *head, *tail; + cin>> num; + head = tail = new Node(num); + v.push_back(num); + for(int i=0 ; i> num; + auto it = std::find(v.begin(), v.end(), num); + if (it != v.end()) { + Node* walk = head; + for(int i=0; inext; + tail->next = walk; + } else { + tail->next = new Node(num); + tail = tail->next; + v.push_back(num); + } + } + + if(detectLoop(head)) cout<< "Cycle Found"; + else cout<< "No Cycle Found"; + return 0; +} From 52848dff9f42c6d0cd6a88b9a800b78eeb13efb3 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:47:52 +0530 Subject: [PATCH 27/31] Add December 27 - Circle of Endurance --- December 27/C++_Bottleneck44.cpp | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 December 27/C++_Bottleneck44.cpp diff --git a/December 27/C++_Bottleneck44.cpp b/December 27/C++_Bottleneck44.cpp new file mode 100644 index 0000000..fcc9456 --- /dev/null +++ b/December 27/C++_Bottleneck44.cpp @@ -0,0 +1,34 @@ +#include +using namespace std; + +int tour(vector> p,int n) + { + int prev_petrol = 0, curr_petrol = 0, start = 0; + for(int i=0; i0?start+1:-1; + } + +int main() +{ + int n; + cout << "Enter the No. of petrol pump: "; + cin>>n; + vector> p (n, vector(n, 0)); + cout << "Enter the petrol: "; + for(int i=0;i>p[i][0]; + } + cout << "Enter the distance: "; + for(int i=0;i>p[i][1]; + } + cout< Date: Sat, 13 Jan 2024 15:48:22 +0530 Subject: [PATCH 28/31] Add December 28 - The Selling Game --- December 28/C++_Bottleneck44.cpp | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 December 28/C++_Bottleneck44.cpp diff --git a/December 28/C++_Bottleneck44.cpp b/December 28/C++_Bottleneck44.cpp new file mode 100644 index 0000000..f786c1a --- /dev/null +++ b/December 28/C++_Bottleneck44.cpp @@ -0,0 +1,59 @@ +#include + +using namespace std; + +struct Item { + int k, r, m, n; +}; + +struct Client { + int k, r; +}; + +bool compareItems(const Item& a, const Item& b) { + return a.m > b.m; +} + +bool compareClients(const Client& a, const Client& b) { + return a.k < b.k; + +int maxGadgetsSold(int x, int z, vector& items, vector& clients) { + sort(items.begin(), items.end(), compareItems); + sort(clients.begin(), clients.end(), compareClients); + + int gadgetsSold = 0; + vector itemSold(x, false); + + for (int i = 0; i < z; ++i) { + for (int j = 0; j < x; ++j) { + if (!itemSold[j] && items[j].m > clients[i].k && items[j].n <= clients[i].r) { + itemSold[j] = true; + gadgetsSold++; + break; + } + } + } + + return gadgetsSold; +} + +int main() { + int x, z; + cin >> x >> z; + + vector items(x); + vector clients(z); + + for (int i = 0; i < x; ++i) { + cin >> items[i].k >> items[i].r >> items[i].m >> items[i].n; + } + + for (int i = 0; i < z; ++i) { + cin >> clients[i].k >> clients[i].r; + } + + int result = maxGadgetsSold(x, z, items, clients); + cout << "Output: " << result << endl; + + return 0; +} From c8b2d48d9a648c95194302d7c2727b0305e1dce7 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:48:50 +0530 Subject: [PATCH 29/31] Add December 29 - Cartesian Walk Validator --- December 29/C++_Bottleneck44.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 December 29/C++_Bottleneck44.cpp diff --git a/December 29/C++_Bottleneck44.cpp b/December 29/C++_Bottleneck44.cpp new file mode 100644 index 0000000..26a5626 --- /dev/null +++ b/December 29/C++_Bottleneck44.cpp @@ -0,0 +1,32 @@ +#include + +using namespace std; + +bool walk(vector v){ + int n = 0, s = 0, w = 0, e = 0; + for(auto c : v){ + if(c == 'n') n++; + else if(c == 'w') w++; + else if(c == 's') s++; + else if(c == 'e') e++; + else return false; + } + if(v.size() == 10 && n == s && w == e) return true; + return false; +} + +int main() { + int n; + cout << "Enter the no. of directions: "; + cin >> n; + vector v; + cout << "Enter the directions: "; + for(int i = 0; i> a; + v.push_back(a); + } + if(walk(v)) cout << "TRUE"; + else cout << "FALSE"; + return 0; +} From b5c5e37c0279e411c531d9143f875f238d95258b Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:49:24 +0530 Subject: [PATCH 30/31] Add December 30 - Tree Inversions --- December 30/C++_Bottleneck44.cpp | 164 +++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 December 30/C++_Bottleneck44.cpp diff --git a/December 30/C++_Bottleneck44.cpp b/December 30/C++_Bottleneck44.cpp new file mode 100644 index 0000000..1a3ae85 --- /dev/null +++ b/December 30/C++_Bottleneck44.cpp @@ -0,0 +1,164 @@ +#include + +using namespace std; + +const int MN = 1e5 + 7; +vector adj[MN]; +int a[MN], tin[MN], f[20][MN], dp[MN], timer; + +struct Query { + int l, r, idx; + Query(int l = 0, int r = 0, int idx = 0) : l(l), r(r), idx(idx) {} +}; + +void dfs(int u, int p) { + tin[u] = ++timer; + dp[u] = dp[p] + 1, f[0][u] = p; + + for (int i = 1; i < 18; i++) + f[i][u] = f[i - 1][f[i - 1][u]]; + + for (auto v : adj[u]) + if (v != p) + dfs(v, u); + + ++timer; +} + +int lca(int u, int v) { + if (dp[u] < dp[v]) + swap(u, v); + + for (int i = 0, diff = dp[u] - dp[v]; (1 << i) <= diff; i++) + if (diff >> i & 1) + u = f[i][u]; + + if (u == v) + return u; + + for (int i = 31 - __builtin_clz(dp[u]); i >= 0; i--) + if (f[i][u] != f[i][v]) + u = f[i][u], v = f[i][v]; + + return f[0][u]; +} + +void processMove(int u, int v, int tv, long long& val, vector& cnt, long long& len) { + auto processAdd = [&](int u) { + val += len - cnt[a[u]]; + cnt[a[u]]++; + len++; + }; + + auto processRmv = [&](int u) { + val -= len - cnt[a[u]]; + cnt[a[u]]--; + len--; + }; + + auto processRio = [&](int u, int v, bool flag) { + int ans = lca(u, v); + while (u != ans) { + if (flag) { + processAdd(u); + } else { + processRmv(u); + } + u = f[0][u]; + } + while (v != ans) { + v = f[0][v]; + if (flag) { + processAdd(v); + } else { + processRmv(v); + } +} + }; + + if (tv == -1) { + int ans = lca(u, v); + while (u != ans || v != ans) { + if (u != ans) { + processAdd(u); + u = f[0][u]; + } + if (v != ans) { + processAdd(v); + v = f[0][v]; + } + } + + + processAdd(ans); + } else { + int pants = lca(v, tv), ans = lca(u, v); + int calc = (dp[pants] < dp[ans]) ? ans : (ans == pants ? lca(tv, u) : pants); + processRio(tv, calc, 1); + processRio(v, calc, 0); + } +} + +vector processQueries(int n, int q, const vector& queries) { + int L = sqrt(n + 1.0) + 2; + vector ans(q + 1); + + for (int i = 0; i <= L * 2; i++) { + long long val = 0, len = 0; + vector cnt(n + 1, 0); + int st = -1, en = -1; + + for (const auto& query : queries) { + int u = query.l, v = query.r; + + if (st == -1) + processMove(u, v, st, val, cnt, len); + else + processMove(st, en, v, val, cnt, len), processMove(v, st, u, val, cnt, len); + + ans[query.idx] = val; + st = u, en = v; + } + } + + return ans; +} + +int main() { + int T; + cin >> T; + + while (T--) { + int n, q; + cin >> n >> q; + + for (int i = 1; i <= n; i++) + adj[i].clear(), timer = 0; + + for (int i = 1; i <= n; i++) + cin >> a[i]; + + for (int i = 1; i < n; i++) { + int u, v; + cin >> u >> v; + adj[u].push_back(v); + adj[v].push_back(u); + } + + dfs(1, 0); + vector queries; + + for (int i = 0; i < q; i++) { + int u, v; + cin >> u >> v; + queries.emplace_back(u, v, i); + } + + vector ans = processQueries(n, q, queries); + + for (int i = 0; i < q; i++) + cout << ans[i] << '\n'; + } + + return 0; +} From 7f09360797ab7f1da1d0694ad87d16f6f259e4b3 Mon Sep 17 00:00:00 2001 From: Ananda <135506157+Bottleneck44@users.noreply.github.com> Date: Sat, 13 Jan 2024 15:49:49 +0530 Subject: [PATCH 31/31] Add December 31 - N Queens --- December 31/C++_Bottleneck44.cpp | 76 ++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 December 31/C++_Bottleneck44.cpp diff --git a/December 31/C++_Bottleneck44.cpp b/December 31/C++_Bottleneck44.cpp new file mode 100644 index 0000000..b545fb6 --- /dev/null +++ b/December 31/C++_Bottleneck44.cpp @@ -0,0 +1,76 @@ +#include +using namespace std; + +bool safe(int row,int col,vector> board,int n){ + int drow=row; + int dcol=col; + + while(dcol>=0){ + if(board[drow][dcol]==1) return false; + dcol--; + } + dcol=col; + + while(drow>=0 && dcol>=0){ + if(board[drow][dcol]==1) return false; + dcol--; + drow--; + } + drow=row; + dcol=col; + + while(drow=0){ + if(board[drow][dcol]==1) return false; + drow++; + dcol--; + } + return true; +} + +void solve(int col , int n , vector> board , vector> &ans){ + if(col == n){ + vector temp; + for(int col=0;col> nQueen(int n){ + vector> ans; + vector> board(n,vector(n,0)); + solve(0,n,board,ans); + return ans; +} + +int main(){ + int n; + cin>>n; + + vector> ans = nQueen(n); + if(ans.size() == 0) + cout<<-1<<"\n"; + else { + for(int i = 0;i < ans.size();i++){ + for(int u = 0;u < ans[i].size();u++) + cout<<"(" << u+1 << ", " << ans[i][u] <<") "; + cout<<"\n"; + } + cout<