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.
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 >> N;
vector<int> A(N);
for (int i = 0; i < N; i++) {
cin >> A[i];
}
int result = settleAccounts(A);
cout << result << endl;
return 0;
}
C++
HackWithInfy
@allcoding1
#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 >> N;
vector<int> A(N);
for (int i = 0; i < N; i++) {
cin >> A[i];
}
int result = settleAccounts(A);
cout << result << 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 < N; i++) {
totalGoodStrings = (totalGoodStrings * M) % MOD;
}
return totalGoodStrings;
}
int main() {
int N, M;
cin >> N >> M;
string S;
cin >> S;
int result = countGoodStrings(N, M, S);
cout << result << endl;
return 0;
}
C++
Good strings code
HackWithInfy
@allcoding1
#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 < N; i++) {
totalGoodStrings = (totalGoodStrings * M) % MOD;
}
return totalGoodStrings;
}
int main() {
int N, M;
cin >> N >> M;
string S;
cin >> S;
int result = countGoodStrings(N, M, S);
cout << result << 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
#include <iostream>
#include <string>
#include <algorithm>
int findLargestX(std::string& 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 << "Largest value of x: " << largest_x << std::endl;
return 0;
}
Maximum_Subarray
C++
HackWithInfy
@allcoding1
#include <string>
#include <algorithm>
int findLargestX(std::string& 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 << "Largest value of x: " << largest_x << 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="">>& dominoes) {
std::unordered_map<int, int=""> dp;
dp[0] = 1; // Base case
int n = dominoes.size();
for(int i = 1; i <= n; ++i) {
std::unordered_map<int, int=""> next_dp;
for(auto& 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& p : dp) {
total_arrangements = (total_arrangements + p.second) % MOD;
}
return total_arrangements;
}
int main() {
int N;
std::cin >> N;
std::vector<std::pair<int, int="">> dominoes(N);
for(int i = 0; i < N; ++i) {
std::cin >> dominoes[i].first >> dominoes[i].second;
}
int total_arrangements = countUniqueArrangements(dominoes);
std::cout << total_arrangements << 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
#include <vector>
#include <unordered_map>
const int MOD = 1000000007;
int countUniqueArrangements(std::vector<std::pair<int, int="">>& dominoes) {
std::unordered_map<int, int=""> dp;
dp[0] = 1; // Base case
int n = dominoes.size();
for(int i = 1; i <= n; ++i) {
std::unordered_map<int, int=""> next_dp;
for(auto& 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& p : dp) {
total_arrangements = (total_arrangements + p.second) % MOD;
}
return total_arrangements;
}
int main() {
int N;
std::cin >> N;
std::vector<std::pair<int, int="">> dominoes(N);
for(int i = 0; i < N; ++i) {
std::cin >> dominoes[i].first >> dominoes[i].second;
}
int total_arrangements = countUniqueArrangements(dominoes);
std::cout << total_arrangements << 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>> obstacles;
bool isObstacle(int x, int y) {
for (auto& obstacle : obstacles) {
if (obstacle[0] == x && obstacle[1] == y) {
return true;
}
}
return false;
}
int countPaths(int x, int y, int movesLeft, std::unordered_map<std::string, int="">& dp) {
if (x < 0 y < 0 x >= n || y >= 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 >> n >> m >> startRow >> startColumn >> moves >> q;
obstacles.resize(q, std::vector<int>(2));
for (int i = 0; i < q; ++i) {
std::cin >> obstacles[i][0] >> obstacles[i][1];
}
std::unordered_map<std::string, int=""> dp;
int totalPaths = countPaths(startRow, startColumn, moves, dp);
std::cout << totalPaths << 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
#include <vector>
#include <unordered_map>
const int MOD = 1000000007;
int n, m, startRow, startColumn, moves, q;
std::vector<std::vector<int>> obstacles;
bool isObstacle(int x, int y) {
for (auto& obstacle : obstacles) {
if (obstacle[0] == x && obstacle[1] == y) {
return true;
}
}
return false;
}
int countPaths(int x, int y, int movesLeft, std::unordered_map<std::string, int="">& dp) {
if (x < 0
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 >> n >> m >> startRow >> startColumn >> moves >> q;
obstacles.resize(q, std::vector<int>(2));
for (int i = 0; i < q; ++i) {
std::cin >> obstacles[i][0] >> obstacles[i][1];
}
std::unordered_map<std::string, int=""> dp;
int totalPaths = countPaths(startRow, startColumn, moves, dp);
std::cout << totalPaths << 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
π Copy ur question and past you get Answer
π1
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MOD = 1e9 + 7;
int main() {
int N, Q;
cin >> N;
vector<int> A(N);
for (int i = 0; i < N; ++i) {
cin >> A[i];
}
cin >> Q;
long long sum = 0;
for (int q = 0; q < Q; ++q) {
int type, L, R, X, i , zero1 , zero2;
cin >> type;
if (type == 1) {
cin >> L >> R >> X;
for (int j = L-1; j < R; ++j) {
A[j] = min(A[j], X);
}
} else if (type == 2) {
cin >> i >> zero1 >>zero2;
sum = (sum + A[i - 1]) % MOD;
}
}
cout << sum << endl;
return 0;
}
Replace by Minimum Code
C++
HackWithInfy
Telegram:- @allcoding1
#include <vector>
#include <algorithm>
using namespace std;
const int MOD = 1e9 + 7;
int main() {
int N, Q;
cin >> N;
vector<int> A(N);
for (int i = 0; i < N; ++i) {
cin >> A[i];
}
cin >> Q;
long long sum = 0;
for (int q = 0; q < Q; ++q) {
int type, L, R, X, i , zero1 , zero2;
cin >> type;
if (type == 1) {
cin >> L >> R >> X;
for (int j = L-1; j < R; ++j) {
A[j] = min(A[j], X);
}
} else if (type == 2) {
cin >> i >> zero1 >>zero2;
sum = (sum + A[i - 1]) % MOD;
}
}
cout << sum << endl;
return 0;
}
Replace by Minimum Code
C++
HackWithInfy
Telegram:- @allcoding1
MOD = 10**9 + 7
def solve(arrival_departure):
arrival_departure.sort(key=lambda x: x[1])
prev_departure = -1
total_stations = 0
for arrival, departure in arrival_departure:
if arrival > prev_departure:
total_stations += 1
prev_departure = departure
return total_stations % MOD
def main():
N = int(input())
arrival_departure = []
for _ in range(N):
arrival, departure = map(int, input().split())
arrival_departure.append((arrival, departure))
result = solve(arrival_departure)
print(result)
if name == "main":
main()
Trains Code
Python
HackWithInfy
Telegram:- @allcoding1
def solve(arrival_departure):
arrival_departure.sort(key=lambda x: x[1])
prev_departure = -1
total_stations = 0
for arrival, departure in arrival_departure:
if arrival > prev_departure:
total_stations += 1
prev_departure = departure
return total_stations % MOD
def main():
N = int(input())
arrival_departure = []
for _ in range(N):
arrival, departure = map(int, input().split())
arrival_departure.append((arrival, departure))
result = solve(arrival_departure)
print(result)
if name == "main":
main()
Trains Code
Python
HackWithInfy
Telegram:- @allcoding1
π2
Forwarded from allcoding1
πIT learning courses
πAll programing courses
πAbdul bari courses
πAshok IT
100 rupees
Contact:- @meterials_available
πAll programing courses
πAbdul bari courses
πAshok IT
100 rupees
Contact:- @meterials_available