allcoding1
27.7K subscribers
2.2K photos
2 videos
77 files
852 links
Download Telegram
πŸ“ŒIT learning courses
πŸ“ŒAll programing courses
πŸ“ŒAbdul bari courses
πŸ“ŒAshok IT

100 rupees

Contact:- @meterials_available
❀2
promotions

@Priya_i
πŸ‘2
Removable subarrays
Hackwithinfy
@allcoding1
πŸ‘1
Gas Station
Hackwithinfy
@allcoding1
Maximum Count
Hackwithinfy
@allcoding1
πŸ‘1
Send questions
Copy ur question and past you get Answer
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;

const int MOD = 1e9 + 7;

vector<vector<int>> tree;
vector<int> a;
unordered_map<int, int> countMap;

bool checkPalindrome(unordered_map<int, int>& countMap) {
int oddCount = 0;
for (auto& it : countMap) {
if (it.second % 2 != 0) oddCount++;
if (oddCount > 1) return false;
}
return true;
}

int dfs(int node) {
int ans = 0;
countMap[a[node]]++;

if (checkPalindrome(countMap)) {
ans = 1;
}

for (auto& child : tree[node]) {
ans += dfs(child);
ans %= MOD;
}

countMap[a[node]]--; // Backtrack to remove the current node's count
return ans;
}

int main() {
int n;
cin >> n;

tree.resize(n + 1);
a.resize(n + 1);
vector<int> par(n + 1);

for (int i = 2; i <= n; i++) {
cin >> par[i];
tree[par[i]].push_back(i);
}

for (int i = 1; i <= n; i++) {
cin >> a[i];
}

int ans = dfs(1);
cout << ans << endl;

return 0;
}



c++

Palindromic subtrees

HackWithInfy

@allcoding1
πŸ‘2
#include <iostream>
#include <string>

using namespace std;

bool isGoodString(string s) {
    int count = 0;
    for (char c : s) {
        if (c == 'a') {
            count++;
        } else {
            count--;
        }
        if (count < 0) {
            return false;
        }
    }
    return count == 0;
}

int main() {
    string s = "aaabbbaaa";
    cout << "Is the string good? " << (isGoodString(s) ? "Yes" : "No") << endl;
    return 0;
}

Count Good Triples
C++
HackWithInfy

@allcoding1
πŸ‘2
Here's the C++ code to solve the problem:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int settleAccounts(vector<int> A) {
int sum = 0;
for (int num : A) {
sum += num;
}

return -sum;
}

int main() {
int N;
cin &gt;&gt; N;

vector<int> A(N);
for (int i = 0; i &lt; N; i++) {
cin &gt;&gt; A[i];
}

int result = settleAccounts(A);
cout &lt;&lt; result &lt;&lt; endl;

return 0;
}

You can compile and run this C++ code to find the maximum amount of money that Bob has to take in one month to settle his dealings. Just enter the number of dealings, followed by each dealing value, and the code will output the result accordingly.</int></int></algorithm></vector></iostream>
Bob is a trader who gives loans to his friends when they need them and takes loans when he needs them. He has decided to leave the trade and work as a Software Engineer, so he wants to settle his accounts.

You are given an array A of size N representing Bob's dealings. If the value of A[i] is less than zero it means that Bob has taken a loan of absolute value of A[i]. Otherwise, he has given a loan of value A[i].

In order to settle accounts, Bob wants to divide all his dealing into some months.

Find the maximum value of minimum money that Bob will take every month to settle his accounts.

Note:

β€’ Bob can distribute any number of dealings in any number of months.

Input Format

The first line contains an integer, N, denoting the number of elements in A.

Each line i of the N subsequent lines (where 0 < i < N) contains an integer describing A[i].
Medium 1: Bob's Dealings

Constraints

1 <= N <= 1000

-10^9 <= A <= 10^9

Sample Test Cases

Case 1

Input:

6

10

10

-40

-40

10

10

Output:

-20

Explanation:

Here, N=6

A=[10, 10, 40, 40, 10, 10]

Bob can divide his dealings into two months the first three dealings in the first month and the second three dealings in the second month, and then the answer will be -20. (a negative number of units means that he needs to pay 20 units).

Hence, 20 is the minimum amount of money that Bob has to take per month to settle his dealings.

Case 2
Input

-7

7

Output:

4

Explanation:

Here, N=5 A=[2,-3,5,-7,7]

Bob can split his dealings into only one month which will cost him 2+ (-3)+5+(-7)+7=4.

Hence, 4 is the maximum amount of money that Bob has to take in one month to settle his dealings.

Case 3

Input:

3

-30

-20

-10

Output:

-30
Explanation:

Here, N=3

A=[-30, -20, -10]

Bob can split his dealings into two months as he cansplit the first dealing in one month for which he

has to take a value of 30 as a loan.

Then he can split the second and third dealings inthe second month for which he has to take a loan on 20 + 10 = 30.

Hence, the maximum amount of money that Coach Yasserhas to take in one month to settle his dealings isequal to 30.
πŸ‘3
allcoding1
Bob is a trader who gives loans to his friends when they need them and takes loans when he needs them. He has decided to leave the trade and work as a Software Engineer, so he wants to settle his accounts. You are given an array A of size N representing Bob's…
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int settleAccounts(vector<int> A) {
int sum = 0;
for (int num : A) {
sum += num;
}

return -sum;
}

int main() {
int N;
cin &gt;&gt; N;

vector<int> A(N);
for (int i = 0; i &lt; N; i++) {
cin &gt;&gt; A[i];
}

int result = settleAccounts(A);
cout &lt;&lt; result &lt;&lt; endl;

return 0;
}

C++
HackWithInfy

@allcoding1
#include <iostream>
#include <vector>
#include <string>

using namespace std;

const int MOD = 1e9 + 7;

int countGoodStrings(int N, int M, string S) {
long long totalGoodStrings = 1;
for (int i = 0; i &lt; N; i++) {
totalGoodStrings = (totalGoodStrings * M) % MOD;
}
return totalGoodStrings;
}

int main() {
int N, M;
cin &gt;&gt; N &gt;&gt; M;

string S;
cin &gt;&gt; S;

int result = countGoodStrings(N, M, S);
cout &lt;&lt; result &lt;&lt; endl;

return 0;
}

C++

Good strings code

HackWithInfy

@allcoding1
πŸ‘2
import sys

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

def Get_ans(N, A):
    mod = 1000000007
    prime_factors = [2, 3, 5, 7, 11, 13]
   
    def count_good_partitions_gcd(gcd_val):
        res = 0
        for i in range(1, gcd_val + 1):
            if all(i % pf != 0 for pf in prime_factors):
                res += pow(2, gcd_val // i - 1, mod)
                res %= mod
        return res
   
    total_gcd = A[0]
    for i in range(1, N):
        total_gcd = gcd(total_gcd, A[i])
   
    result = count_good_partitions_gcd(total_gcd)
    return result

def main():
    N = int(sys.stdin.readline().strip())
    A = []
    for _ in range(N):
        A.append(int(sys.stdin.readline().strip()))
   
    result = Get_ans(N, A)
    print(result)

if __name__ == "__main":
    main()
πŸ‘2❀1
Integer array A of size n.... Code

HackWithInfy

@allcoding1
#include <iostream>
#include <string>
#include <algorithm>

int findLargestX(std::string&amp; str) {
int max_x = 0;
int sum = 0;

for (char c : str) {
if (isdigit(c)) {
sum += c - '0';
} else if (c == '-') {
max_x = std::max(max_x, sum);
sum = 0;
}
}

return max_x;
}

int main() {
std::string input = "63-1+2-1+3+4-9-1+2-3-3+4+9";
int largest_x = findLargestX(input);

std::cout &lt;&lt; "Largest value of x: " &lt;&lt; largest_x &lt;&lt; std::endl;

return 0;
}

Maximum_Subarray

C++

HackWithInfy

@allcoding1
πŸ‘2
#include <iostream>
#include <vector>
#include <unordered_map>

const int MOD = 1000000007;

int countUniqueArrangements(std::vector<std::pair<int, int="">&gt;&amp; dominoes) {
std::unordered_map<int, int=""> dp;
dp[0] = 1; // Base case
int n = dominoes.size();

for(int i = 1; i &lt;= n; ++i) {
std::unordered_map<int, int=""> next_dp;

for(auto&amp; domino : dominoes) {
int key = dp.count(domino.first) ? domino.first : domino.second;
next_dp[key] = (next_dp[key] + dp[key ^ domino.first ^ domino.second]) % MOD;
}

dp = std::move(next_dp);
}

int total_arrangements = 0;
for(auto&amp; p : dp) {
total_arrangements = (total_arrangements + p.second) % MOD;
}

return total_arrangements;
}

int main() {
int N;
std::cin &gt;&gt; N;

std::vector<std::pair<int, int="">&gt; dominoes(N);
for(int i = 0; i &lt; N; ++i) {
std::cin &gt;&gt; dominoes[i].first &gt;&gt; dominoes[i].second;
}

int total_arrangements = countUniqueArrangements(dominoes);

std::cout &lt;&lt; total_arrangements &lt;&lt; std::endl;

return 0;
}

C++
You are given a set of dominoes each with two sides. Each side is marked with dots ranging from 1 to 6.

HackWithInfy

@allcoding1
πŸ‘1
#include <iostream>
#include <vector>
#include <unordered_map>

const int MOD = 1000000007;
int n, m, startRow, startColumn, moves, q;
std::vector<std::vector<int>&gt; obstacles;

bool isObstacle(int x, int y) {
for (auto&amp; obstacle : obstacles) {
if (obstacle[0] == x &amp;&amp; obstacle[1] == y) {
return true;
}
}
return false;
}

int countPaths(int x, int y, int movesLeft, std::unordered_map<std::string, int="">&amp; dp) {
if (x &lt; 0 y &lt; 0 x &gt;= n || y &gt;= m) {
return 1;
}
if (movesLeft == 0 || isObstacle(x, y)) {
return 0;
}

std::string key = std::to_string(x) + ":" + std::to_string(y) + ":" + std::to_string(movesLeft);
if (dp.find(key) != dp.end()) {
return dp[key];
}

int paths = countPaths(x + 1, y, movesLeft - 1, dp) % MOD;
paths = (paths + countPaths(x - 1, y, movesLeft - 1, dp)) % MOD;
paths = (paths + countPaths(x, y + 1, movesLeft - 1, dp)) % MOD;
paths = (paths + countPaths(x, y - 1, movesLeft - 1, dp)) % MOD;

dp[key] = paths;
return paths;
}

int main() {
std::cin &gt;&gt; n &gt;&gt; m &gt;&gt; startRow &gt;&gt; startColumn &gt;&gt; moves &gt;&gt; q;

obstacles.resize(q, std::vector<int>(2));
for (int i = 0; i &lt; q; ++i) {
std::cin &gt;&gt; obstacles[i][0] &gt;&gt; obstacles[i][1];
}

std::unordered_map<std::string, int=""> dp;
int totalPaths = countPaths(startRow, startColumn, moves, dp);

std::cout &lt;&lt; totalPaths &lt;&lt; std::endl;

return 0;
}

C++

In a town called Gridland, there lived a man named Alex who had a special skill. He could move around a grid like a big square map. The grid had obstacles, things he couldn't go through.

The grid is described by its size n x m, and Alex starts at a specΓ­fic position [startRow, startColumn). There are also obstacles in fixed positions.

HackWithInfy

@allcoding1
πŸ‘3❀1
https://www.allcoding1.com/2023/12/allcoding1-answers.html?m=1


πŸ†“ Copy ur question and past you get Answer
πŸ‘1