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