Qualification: Bachelorโs or Masterโs degree
Batch: 2022/2023/2024/2025
Salary: โน 13 LPA (Expected)
Apply @ https://bit.ly/4b0PQs8
https://bit.ly/4b0PQs8
๐Pass This Job Info To All Your Friends & Groups๐
Are you a coding enthusiast looking for placement opportunities in top companies? Look no further than CODING SOLUTION - Placement Jobs & Materials! This Telegram channel is dedicated to helping individuals like you land a job in a reputed company. With a focus on providing placement resources, job listings, and materials to enhance your coding skills, CODING SOLUTION is your one-stop destination for all things related to coding placements. Who is it? CODING SOLUTION is a channel designed for individuals seeking placement opportunities in the coding field. Whether you are a fresh graduate or an experienced professional, this channel caters to all levels of expertise in the coding domain. What is it? CODING SOLUTION offers a wide range of materials and resources to help you prepare for placement interviews, improve your coding skills, and ultimately secure a job in a reputed company. From job listings to coding tutorials, this channel has everything you need to succeed in the competitive world of coding placements. Don't miss out on this valuable resource! Join CODING SOLUTION - Placement Jobs & Materials on Telegram today and take the first step towards launching your coding career. Contact the admin on instagram.com/offcampusjobsindia_it for more information and updates. Let's code your way to success together! ๐
16 Feb, 08:56
05 Feb, 10:25
30 Nov, 07:10
from collections import deque
import itertools
def get_shortest_path(grid, N):
start = None
end = None
for i in range(N):
for j in range(N):
if grid[i][j] == 'S':
start = (i, j)
elif grid[i][j] == 'D':
end = (i, j)
queue = deque([(start, 0)])
visited = {start}
while queue:
(x, y), dist = queue.popleft()
if grid[x][y] == 'D':
return dist
for nx, ny in [(x+1, y), (x-1, y), (x, y+1), (x, y-1)]:
if 0 <= nx < N and 0 <= ny < N and (nx, ny) not in visited and grid[nx][ny] != 'T':
visited.add((nx, ny))
queue.append(((nx, ny), dist + 1))
return float('inf')
def get_sheets(grid, N, M):
sheets = []
for i in range(0, N, M):
for j in range(0, N, M):
sheet = []
for x in range(M):
row = []
for y in range(M):
row.append(grid[i+x][j+y])
sheet.append(row)
sheets.append(sheet)
return sheets
def make_grid(arrangement, sheets, N, M):
grid = [["" for _ in range(N)] for _ in range(N)]
num_sheets = N // M
for idx, sheet_idx in enumerate(arrangement):
sheet = sheets[sheet_idx]
base_i = (idx // num_sheets) * M
base_j = (idx % num_sheets) * M
for i in range(M):
for j in range(M):
grid[base_i + i][base_j + j] = sheet[i][j]
return grid
def solve():
N, M = map(int, input().split())
original_grid = [list(input().strip()) for _ in range(N)]
sheets = get_sheets(original_grid, N, M)
num_sheets = (N // M) ** 2
s_sheet = d_sheet = None
for i, sheet in enumerate(sheets):
for row in sheet:
if 'S' in row:
s_sheet = i
if 'D' in row:
d_sheet = i
min_dist = float('inf')
nums = list(range(num_sheets))
nums.remove(s_sheet)
nums.remove(d_sheet)
for middle_perm in itertools.permutations(nums):
arrangement = [s_sheet] + list(middle_perm) + [d_sheet]
grid = make_grid(arrangement, sheets, N, M)
min_dist = min(min_dist, get_shortest_path(grid, N))
return min_dist
if name == "main":
print(solve())
30 Nov, 07:10
pair<double, double> r(double px, double py, double x1, double y1, double x2, double y2) {
double a = y2 - y1;
double b = x1 - x2;
double c = x2 * y1 - x1 * y2;
double d = (a * px + b * py + c) / sqrt(a * a + b * b);
double nx = px - 2 * d * (a / sqrt(a * a + b * b));
double ny = py - 2 * d * (b / sqrt(a * a + b * b));
return {nx, ny};
}
int main() {
double ar;
cin >> ar;
double x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
double s = sqrt(ar);
vector<pair<double, double>> cr = {
{0, 0},
{0, s},
{s, s},
{s, 0},
};
set<pair<double, double>> pts(cr.begin(), cr.end());
for (const auto& c : cr) {
auto [rx, ry] = r(c.first, c.second, x1, y1, x2, y2);
pts.insert({rx, ry});
}
for (const auto& p : pts) {
cout << fixed << setprecision(2) << p.first << " " << p.second << endl;
}
return 0;
}
30 Nov, 07:10
struct P {
double a, b;
P(double a = 0, double b = 0) : a(a), b(b) {}
};
P r(const P &p, double t) {
return P(p.a * cos(t) - p.b * sin(t),
p.a * sin(t) + p.b * cos(t));
}
pair<double, double> g(const vector<P> &q, double t) {
double x1 = 1e9, x2 = -1e9, y1 = 1e9, y2 = -1e9;
for (const auto &p : q) {
P s = r(p, t);
x1 = min(x1, s.a);
x2 = max(x2, s.a);
y1 = min(y1, s.b);
y2 = max(y2, s.b);
}
return {x2 - x1, y2 - y1};
}
int main() {
int n;
cin >> n;
vector<P> q(n);
for (int i = 0; i < n; ++i) {
cin >> q[i].a >> q[i].b;
}
double m = 1e9, w = 0, h = 0;
for (int i = 0; i < 360; ++i) {
double t = i * M_PI / 180.0;
auto [cw, ch] = g(q, t);
double a = cw * ch;
if (a < m) {
m = a;
w = cw;
h = ch;
}
}
if (w > h) {
swap(w, h);
}
cout << fixed << setprecision(0) << round(w) << " "
<< fixed << setprecision(0) << round(h);
return 0;
}
30 Nov, 07:10
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> ids(n), costs(n);
for (int i = 0; i < n; i++) cin >> ids[i];
for (int i = 0; i < n; i++) cin >> costs[i];
int budget;
cin >> budget;
int maxItems = 0, minCost = 0;
for (int i = 0; i < n; i++) {
int itemCost = costs[i];
int quantity = budget / itemCost;
if (quantity > 0) {
int currentItems = 0, currentCost = 0;
for (int j = 0; j < n; j++) {
if (i != j && ids[i] % ids[j] == 0) {
currentItems += quantity;
currentCost += costs[j] * quantity;
}
}
if (currentItems > maxItems || (currentItems == maxItems && currentCost > minCost)) {
maxItems = currentItems;
minCost = currentCost;
}
}
}
cout << maxItems << " " << minCost << endl;
return 0;
}
30 Nov, 07:09
import java.util.*;
public class LoopMaster {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numberOfCommands = Integer.parseInt(scanner.nextLine());
List<String> commands = new ArrayList<>();
for (int i = 0; i < numberOfCommands; i++) {
commands.add(scanner.nextLine().trim());
}
processCommands(commands);
}
private static void processCommands(List<String> commands) {
Stack<Integer> loopIterations = new Stack<>();
Stack<Integer> currentIterations = new Stack<>();
StringBuilder output = new StringBuilder();
int commandIndex = 0;
while (commandIndex < commands.size()) {
String command = commands.get(commandIndex);
if (command.startsWith("for")) {
int times = Integer.parseInt(command.split(" ")[1]);
loopIterations.push(times);
currentIterations.push(0);
} else if (command.equals("do")) {
// No operation for "do"
} else if (command.equals("done")) {
int current = currentIterations.pop() + 1;
int maxIterations = loopIterations.pop();
if (current < maxIterations) {
loopIterations.push(maxIterations);
currentIterations.push(current);
commandIndex = findLoopStart(commands, commandIndex);
continue;
}
} else if (command.startsWith("break")) {
int breakCondition = Integer.parseInt(command.split(" ")[1]);
if (currentIterations.peek() + 1 == breakCondition) {
loopIterations.pop();
currentIterations.pop();
commandIndex = findLoopEnd(commands, commandIndex);
}
} else if (command.startsWith("continue")) {
int continueCondition = Integer.parseInt(command.split(" ")[1]);
if (currentIterations.peek() + 1 == continueCondition) {
int maxIterations = loopIterations.peek();
int current = currentIterations.pop() + 1;
if (current < maxIterations) {
currentIterations.push(current);
commandIndex = findLoopStart(commands, commandIndex);
}
continue;
}
} else if (command.startsWith("print")) {
String message = command.substring(command.indexOf("\"") + 1, command.lastIndexOf("\""));
output.append(message).append("\n");
}
commandIndex++;
}
System.out.print(output.toString());
}
private static int findLoopStart(List<String> commands, int currentIndex) {
int nestedLoops = 0;
for (int i = currentIndex - 1; i >= 0; i--) {
if (commands.get(i).equals("done")) {
nestedLoops++;
} else if (commands.get(i).equals("do")) {
if (nestedLoops == 0) {
return i;
}
nestedLoops--;
}
}
return 0;
}
private static int findLoopEnd(List<String> commands, int currentIndex) {
int nestedLoops = 0;
for (int i = currentIndex + 1; i < commands.size(); i++) {
if (commands.get(i).equals("do")) {
nestedLoops++;
} else if (commands.get(i).equals("done")) {
if (nestedLoops == 0) {
return i;
}
nestedLoops--;
}
}
return commands.size();
}
}
30 Nov, 07:09
Plague 2050
PYTHON
from collections import deque
def infected_neighbors_count(grid, a, b):
n = len(grid)
count = 0
directions = [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]
for i in range(len(directions)):
dx, dy = directions[i]
nx, ny = a + dx, b + dy
if 0 <= nx < n and 0 <= ny < n and grid[nx][ny] == 1:
count += 1
return count
def infection_process(grid):
n = len(grid)
new_grid = [[grid[i][j] for j in range(n)] for i in range(n)]
for i in range(n):
for j in range(n):
neighbors = infected_neighbors_count(grid, i, j)
if grid[i][j] == 0 and neighbors == 3:
new_grid[i][j] = 1
elif grid[i][j] == 1 and (neighbors < 2 or neighbors > 3):
new_grid[i][j] = 0
return new_grid
def find_path(size, initial_grid):
grid = [[1 if cell == '1' else 0 for cell in row] for row in initial_grid]
start_x, start_y, end_x, end_y = -1, -1, -1, -1
def set_positions():
nonlocal start_x, start_y, end_x, end_y
for i in range(size):
for j in range(size):
if initial_grid[i][j] == 's':
start_x, start_y = i, j
grid[i][j] = 0
if initial_grid[i][j] == 'd':
end_x, end_y = i, j
grid[i][j] = 0
set_positions()
queue = deque([(start_x, start_y, grid, 0)])
seen_states = set()
while queue:
x, y, current_grid, days = queue.popleft()
if (x, y) == (end_x, end_y):
return days
state = (x, y, tuple(map(tuple, current_grid)))
if state in seen_states:
continue
seen_states.add(state)
next_grid = infection_process(current_grid)
moves = [(0, 0), (-1, 0), (1, 0), (0, -1), (0, 1)]
for dx, dy in moves:
nx, ny = x + dx, y + dy
if 0 <= nx < size and 0 <= ny < size and next_grid[nx][ny] == 0:
queue.append((nx, ny, next_grid, days + 1))
return -1
if name == "__main__":
n = int(input())
pollution_map = [input().strip() for _ in range(n)]
print(find_path(n, pollution_map) + 1)
30 Nov, 07:09
import java.util.*;
public class RitikaTask {
private static int[] canFormWithDeletions(String sub, String mainStr, int maxDeletions) {
int i = 0, j = 0, deletionsUsed = 0;
while (i < mainStr.length() && j < sub.length()) {
if (mainStr.charAt(i) == sub.charAt(j)) {
i++;
j++;
} else {
deletionsUsed++;
if (deletionsUsed > maxDeletions) {
return new int[] {i, deletionsUsed};
}
i++;
}
}
return new int[] {i, deletionsUsed};
}
private static boolean canMatchCharacter(char c, List<String> substrings) {
for (String sub : substrings) {
if (sub.indexOf(c) >= 0) {
return true;
}
}
return false;
}
public static String solveRitikaTask(List<String> substrings, String mainStr, int k) {
int n = mainStr.length();
int deletionsUsed = 0;
StringBuilder formedString = new StringBuilder();
boolean isAnyMatch = false;
for (int i = 0; i < n; i++) {
if (!canMatchCharacter(mainStr.charAt(i), substrings)) {
return "Impossible";
}
}
for (int i = 0; i < n;) {
boolean matched = false;
for (String sub : substrings) {
int[] result = canFormWithDeletions(sub, mainStr.substring(i), k - deletionsUsed);
int newIndex = result[0];
int usedDeletions = result[1];
if (newIndex > 0) {
matched = true;
isAnyMatch = true;
formedString.append(mainStr.substring(i, i + newIndex));
i += newIndex;
deletionsUsed += usedDeletions;
break;
}
}
if (!matched) {
break;
}
}
if (formedString.length() == n) {
if (deletionsUsed <= k) {
return "Possible";
} else {
return formedString.toString().trim();
}
} else if (isAnyMatch) {
return "Nothing";
} else if (deletionsUsed > k) {
return formedString.toString().trim();
} else {
return formedString.toString().trim();
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
scanner.nextLine();
List<String> substrings = new ArrayList<>();
for (int i = 0; i < N; i++) {
substrings.add(scanner.nextLine());
}
String mainStr = scanner.nextLine();
int K = scanner.nextInt();
String result = solveRitikaTask(substrings, mainStr, K);
System.out.print(result);
scanner.close();
}
}
30 Nov, 07:09
MAXIMUM ROTATION
PYTHON
def rl(layer, pos, dir, ol):
n = len(layer)
rot = [None] * n
if dir == "clockwise":
for i in range(n):
rot[(i + pos) % n] = layer[i]
else:
for i in range(n):
rot[(i - pos) % n] = layer[i]
for i in range(n):
if ol:
rot[i] = chr(((ord(rot[i]) - ord('A') - 1) % 26) + ord('A'))
else:
rot[i] = chr(((ord(rot[i]) - ord('A') + 1) % 26) + ord('A'))
return rot
def aq(pl, row, col, size):
layers = []
for layer in range(size // 2):
cl = []
for j in range(col + layer, col + size - layer):
cl.append(pl[row + layer][j])
for i in range(row + layer + 1, row + size - layer - 1):
cl.append(pl[i][col + size - layer - 1])
for j in range(col + size - layer - 1, col + layer - 1, -1):
cl.append(pl[row + size - layer - 1][j])
for i in range(row + size - layer - 2, row + layer, -1):
cl.append(pl[i][col + layer])
layers.append(cl)
for lidx, layer in enumerate(layers):
ol = (lidx + 1) % 2 == 1
dir = "counterclockwise" if ol else "clockwise"
pos = lidx + 1
rotated_layer = rl(layer, pos, dir, ol)
idx = 0
for j in range(col + lidx, col + size - lidx):
pl[row + lidx][j] = rotated_layer[idx]
idx += 1
for i in range(row + lidx + 1, row + size - lidx - 1):
pl[i][col + size - lidx - 1] = rotated_layer[idx]
idx += 1
for j in range(col + size - lidx - 1, col + lidx - 1, -1):
pl[row + size - lidx - 1][j] = rotated_layer[idx]
idx += 1
for i in range(row + size - lidx - 2, row + lidx, -1):
pl[i][col + lidx] = rotated_layer[idx]
idx += 1
def MAX_ROTATION(n, pl, queries):
for row, col, size in queries:
aq(pl, row, col, size)
result = ''.join(''.join(row) for row in pl)
return result
n = int(input())
pl = [list(input().strip().split()) for _ in range(n)]
q = int(input().strip())
queries = [tuple(map(int, input().strip().split())) for _ in range(q)]
result = MAX_ROTATION(n, pl, queries)
print(result, end="")
30 Nov, 07:09
#include <iostream>
#include <vector>
#include <set>
#include <cmath>
#include <map>
#include <algorithm>
using namespace std;
polygon using the Shoelace Theorem
int calculateArea(const vector<pair<int, int>>& polygon) {
int n = polygon.size();
int area = 0;
for (int i = 0; i < n; i++) {
int j = (i + 1) % n;
area += polygon[i].first * polygon[j].second;
area -= polygon[j].first * polygon[i].second;
}
return abs(area) / 2;
}
are connected
bool areConnected(pair<int, int> a, pair<int, int> b, pair<int, int>& p1, pair<int, int>& p2) {
return (p1 == a && p2 == b) || (p1 == b && p2 == a);
}
int main() {
int N;
cin >> N;
vector<pair<int, int>> coordinates;
vector<vector<pair<int, int>>> segments(N);
set<pair<int, int>> points;
store them as pairs
for (int i = 0; i < N; i++) {
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
coordinates.push_back({x1, y1});
coordinates.push_back({x2, y2});
points.insert({x1, y1});
points.insert({x2, y2});
}
vector<pair<int, int>> polygon;
int maxArea = 0;
to form polygons
for (auto p1 = points.begin(); p1 != points.end(); ++p1) {
for (auto p2 = next(p1); p2 != points.end(); ++p2) {
polygon.push_back(*p1);
polygon.push_back(*p2);
maxArea = max(maxArea, calculateArea(polygon));
}
}
cout << maxArea << endl;
return 0;
}
30 Nov, 07:09
#include <bits/stdc++.h>
using namespace std;
struct Point {
int x, y;
};
int squaredDistance(const Point& a, const Point& b) {
int dx = a.x - b.x;
int dy = a.y - b.y;
return dx * dx + dy * dy;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int N;
cin >> N;
vector<vector<int>> earringEdges(N, vector<int>());
for(int i=0; i<N; i++){
int K;
cin >> K;
vector<Point> points(K);
for(int j=0; j<K; j++) cin >> points[j].x >> points[j].y;
vector<int> edges;
for(int j=0; j<K; j++){
int next = (j+1) % K;
edges.push_back(squaredDistance(points[j], points[next]));
}
earringEdges[i] = edges;
}
bool found = false;
int e1 = -1, e2 = -1;
for(int i=0; i<N && !found; i++){
for(int j=i+1; j<N && !found; j++){
if(earringEdges[i].size() != earringEdges[j].size()) continue;
int K = earringEdges[i].size();
for(int s=0; s<K && !found; s++){
bool match = true;
for(int k=0; k<K; k++){
if(earringEdges[i][k] != earringEdges[j][(k+s)%K]){
match = false;
break;
}
}
if(match){
e1 = i+1;
e2 = j+1;
found = true;
}
}
}
}
if(found){
cout << e1 << " " << e2;
} else {
cout << "No matching pair found.";
}
return 0;
}
30 Nov, 07:09
string s;
cin >> s;
int n = s.length(), res = 0;
vector<int> v(n);
for (int i = 0; i < n; ++i) cin >> v[i];
int lw = s[0] - '0', lwv = v[0];
for (int i = 1; i < n; ++i) {
if (s[i] - '0' == lw) {
res += min(lwv, v[i]);
lwv = max(lwv, v[i]);
} else {
lw = s[i] - '0';
lwv = v[i];
}
}
cout << res;
return 0;
}
30 Nov, 07:09
30 Nov, 07:09
30 Nov, 07:09
30 Nov, 07:09
30 Nov, 07:09
30 Nov, 07:09
30 Nov, 07:09
30 Nov, 07:09
30 Nov, 07:09
19 Nov, 13:06
14 Nov, 05:33
14 Nov, 05:31
11 Nov, 12:39
09 May, 15:16
09 May, 15:14
09 May, 15:13
09 May, 10:32
09 May, 10:26
27 Nov, 05:52
27 Nov, 05:50
27 Nov, 05:48
27 Nov, 05:44