#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int MAX = 1e5+5;
vector<int> tree[MAX];
int A[MAX];
int one[MAX], two[MAX], three[MAX], twothree[MAX];
int oneCnt = 0, twoCnt = 0, threeCnt = 0;
int ans = 0;
void dfs(int u, int parent) {
if(A[u] == 1) one[u]++;
else if(A[u] == 2) two[u]++;
else three[u]++;
for(auto v : tree[u]) {
if(v == parent) continue;
dfs(v, u);
one[u] += one[v];
two[u] += two[v];
three[u] += three[v];
if(two[v] && three[v]) twothree[u] = 1;
if(two[v] && three[u - v]) twothree[u] = 1;
if(two[u - v] && three[v]) twothree[u] = 1;
}
}
void solve() {
oneCnt = twoCnt = threeCnt = ans = 0;
int n; cin >> n;
for(int i = 1; i <= n; i++) tree[i].clear();
for(int i = 1; i <= n; i++) {
cin >> A[i];
if(A[i] == 1) oneCnt++;
else if(A[i] == 2) twoCnt++;
else threeCnt++;
}
for(int i = 1; i < n; i++) {
int u, v; cin >> u >> v;
tree[u].push_back(v);
tree[v].push_back(u);
}
memset(one, 0, sizeof one);
memset(two, 0, sizeof two);
memset(three, 0, sizeof three);
memset(twothree, 0, sizeof twothree);
dfs(1, 0);
for(int u = 1; u <= n; u++) {
for(auto v : tree[u]) {
if(two[v] && three[n - v] && !twothree[v] && !twothree[n - v]) ans++;
}
}
cout << ans << "\n";
}
int main() {
int T; cin >> T;
while(T--) solve();
return 0;
}
Splitting edges โ
using namespace std;
#define ll long long
const int MAX = 1e5+5;
vector<int> tree[MAX];
int A[MAX];
int one[MAX], two[MAX], three[MAX], twothree[MAX];
int oneCnt = 0, twoCnt = 0, threeCnt = 0;
int ans = 0;
void dfs(int u, int parent) {
if(A[u] == 1) one[u]++;
else if(A[u] == 2) two[u]++;
else three[u]++;
for(auto v : tree[u]) {
if(v == parent) continue;
dfs(v, u);
one[u] += one[v];
two[u] += two[v];
three[u] += three[v];
if(two[v] && three[v]) twothree[u] = 1;
if(two[v] && three[u - v]) twothree[u] = 1;
if(two[u - v] && three[v]) twothree[u] = 1;
}
}
void solve() {
oneCnt = twoCnt = threeCnt = ans = 0;
int n; cin >> n;
for(int i = 1; i <= n; i++) tree[i].clear();
for(int i = 1; i <= n; i++) {
cin >> A[i];
if(A[i] == 1) oneCnt++;
else if(A[i] == 2) twoCnt++;
else threeCnt++;
}
for(int i = 1; i < n; i++) {
int u, v; cin >> u >> v;
tree[u].push_back(v);
tree[v].push_back(u);
}
memset(one, 0, sizeof one);
memset(two, 0, sizeof two);
memset(three, 0, sizeof three);
memset(twothree, 0, sizeof twothree);
dfs(1, 0);
for(int u = 1; u <= n; u++) {
for(auto v : tree[u]) {
if(two[v] && three[n - v] && !twothree[v] && !twothree[n - v]) ans++;
}
}
cout << ans << "\n";
}
int main() {
int T; cin >> T;
while(T--) solve();
return 0;
}
Splitting edges โ
โค1
Maximum separation โ
Make my trip
Make my trip
#include <bits/stdc++.h>
using namespace std;
long long n, m;
long long kmin, kmax;
int main()
{
cin >> n >> m;
long long x;
x = n/m + 1;
kmin = ((x*(x-1))/2)*(n % m);
x -= 1;
kmin += ((x*(x-1))/2)*(m - (n%m));
x = n-m+1;
kmax = (x*(x-1))/2;
cout << kmin << " " << kmax;
return 0;
}
Telephone Connection โ
using namespace std;
long long n, m;
long long kmin, kmax;
int main()
{
cin >> n >> m;
long long x;
x = n/m + 1;
kmin = ((x*(x-1))/2)*(n % m);
x -= 1;
kmin += ((x*(x-1))/2)*(m - (n%m));
x = n-m+1;
kmax = (x*(x-1))/2;
cout << kmin << " " << kmax;
return 0;
}
Telephone Connection โ
Forwarded from OffCampus Jobs | OnCampus Jobs | Daily Jobs Updates | Lastest Jobs | All Jobs | CSE Jobs | Fresher Jobs โฅ (Dushyant)
๐1
Stable Segment
Python 3โ
Python 3โ
๐๐ฆ ๐๐น๐ด๐ผ ๐ป ๐ ใ๐๐ผ๐บ๐ฝ๐ฒ๐๐ถ๐๐ถ๐๐ฒ ๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ดใ
Stable Segment Python 3โ
int solve(vector<int>& capacity) {
int n = capacity.size();
int ans = 0;
vector<int> arr(n);
partial_sum(capacity.begin(), capacity.end(), arr.begin());
for (int i = 0; i < n; ++i) {
auto it = upper_bound(arr.begin() + i, arr.end(), arr[i] + capacity[i]);
int j = distance(arr.begin(), it);
if (j < n && capacity[i] == capacity[j] && arr[j - 1] - arr[i] == capacity[i]) {
ans += 1;
}
}
return ans;
}
C++โ
int n = capacity.size();
int ans = 0;
vector<int> arr(n);
partial_sum(capacity.begin(), capacity.end(), arr.begin());
for (int i = 0; i < n; ++i) {
auto it = upper_bound(arr.begin() + i, arr.end(), arr[i] + capacity[i]);
int j = distance(arr.begin(), it);
if (j < n && capacity[i] == capacity[j] && arr[j - 1] - arr[i] == capacity[i]) {
ans += 1;
}
}
return ans;
}
C++โ
int pow2(long N) {
int ans = 0;
for (int i = 0; i < 64; i++) {
long x = 1;
if ((N & (x << i)) > 0) ans++;
}
return ans;
}
int minchunks(long total, vector<vector<long>> uploaded) {
sort(uploaded.begin(), uploaded.end());
int lastChunkNum = 1;
int ans = 0;
for (int i = 0; i < uploaded.size(); i++) {
int start = uploaded[i][0];
int end = uploaded[i][1];
ans += pow2(start - lastChunkNum);
lastChunkNum = end + 1;
}
if (uploaded.back()[1] != total) {
ans += pow2(total - uploaded.back()[1]);
}
return ans;
}
C++โ
int ans = 0;
for (int i = 0; i < 64; i++) {
long x = 1;
if ((N & (x << i)) > 0) ans++;
}
return ans;
}
int minchunks(long total, vector<vector<long>> uploaded) {
sort(uploaded.begin(), uploaded.end());
int lastChunkNum = 1;
int ans = 0;
for (int i = 0; i < uploaded.size(); i++) {
int start = uploaded[i][0];
int end = uploaded[i][1];
ans += pow2(start - lastChunkNum);
lastChunkNum = end + 1;
}
if (uploaded.back()[1] != total) {
ans += pow2(total - uploaded.back()[1]);
}
return ans;
}
C++โ
class Solution {
public:
int lastStoneWeight(vector<int>& stones) {
vector<int>vect(stones);
int dum;
for(int i=0; i<stones.size()-1; i++){
sort(vect.begin(), vect.end());
dum = vect[i]-vect[i+1];
if(vect[i] != vect[i+1]){
vect.erase(vect.begin());
vect.erase(vect.begin());
vect.insert(vect.begin(),dum);
}
else{
vect.erase(vect.begin());
vect.erase(vect.begin());
}
}
if(!vect.empty()){
return vect[0];
}else{
return 0;
}
}
};
Nivida โ
public:
int lastStoneWeight(vector<int>& stones) {
vector<int>vect(stones);
int dum;
for(int i=0; i<stones.size()-1; i++){
sort(vect.begin(), vect.end());
dum = vect[i]-vect[i+1];
if(vect[i] != vect[i+1]){
vect.erase(vect.begin());
vect.erase(vect.begin());
vect.insert(vect.begin(),dum);
}
else{
vect.erase(vect.begin());
vect.erase(vect.begin());
}
}
if(!vect.empty()){
return vect[0];
}else{
return 0;
}
}
};
Nivida โ
โค1
Python 3โ
Number Arrangements
De shaw
Number Arrangements
De shaw
Forwarded from OffCampus Jobs | OnCampus Jobs | Daily Jobs Updates | Lastest Jobs | All Jobs | CSE Jobs | Fresher Jobs โฅ (Dushyant)
Email ID - keerthana.jb@segulagrp.com
Forwarded from OffCampus Jobs | OnCampus Jobs | Daily Jobs Updates | Lastest Jobs | All Jobs | CSE Jobs | Fresher Jobs โฅ (Dushyant)
Company Name: Zuddl
Role: iOS Intern
Batch eligible: 2023 and 2024 grads
Apply: https://zuddl.keka.com/careers/jobdetails/45874
Role: iOS Intern
Batch eligible: 2023 and 2024 grads
Apply: https://zuddl.keka.com/careers/jobdetails/45874
Forwarded from OffCampus Jobs | OnCampus Jobs | Daily Jobs Updates | Lastest Jobs | All Jobs | CSE Jobs | Fresher Jobs โฅ (Dushyant)
Company Name : Directi
Role : Product Design Internship (UI/UX engineer)
Batch : 2024/2025 passouts
Link : https://jobs.lever.co/directi/cf481540-aa1b-46b0-bb73-96d0b8100a2d
Role : Product Design Internship (UI/UX engineer)
Batch : 2024/2025 passouts
Link : https://jobs.lever.co/directi/cf481540-aa1b-46b0-bb73-96d0b8100a2d
int main() {
int n, m;
cin >> n >> m;
vector<int> loads(n, 0);
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> servers;
for (int i = 0; i < n; ++i) {
servers.push({0, i + 1});
}
for (int i = 0; i < m; ++i) {
int request;
cin >> request;
auto min_server = servers.top();
servers.pop();
int server_index = min_server.second - 1;
loads[server_index] += request;
min_server.first += request;
servers.push(min_server);
cout << min_server.second << " ";
}
cout << endl;
return 0;
}
Server โ
Amadeus
int n, m;
cin >> n >> m;
vector<int> loads(n, 0);
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> servers;
for (int i = 0; i < n; ++i) {
servers.push({0, i + 1});
}
for (int i = 0; i < m; ++i) {
int request;
cin >> request;
auto min_server = servers.top();
servers.pop();
int server_index = min_server.second - 1;
loads[server_index] += request;
min_server.first += request;
servers.push(min_server);
cout << min_server.second << " ";
}
cout << endl;
return 0;
}
Server โ
Amadeus
Seat Reservation
Python 3โ
Urban Company
Python 3โ
Urban Company
import math
from bisect import bisect_left, bisect_right
mx = 10**6
spf = [False, False] + [True for i in range(mx)]
for i in range(2, int(math.sqrt(mx)) + 1):
if spf[i] == True:
for j in range(i * i, mx + 1, i):
spf[j] = False
p = []
for i in range(len(spf)):
if spf[i]:
p.append(i)
p.sort()
n = len(p)
cnt = 0
N = int(input())
idx = bisect_right(p, N)
a = []
for i in range(1, idx):
z = 2 ** p[i]
if (2 < p[i] < z or 2 < z < p[i]) and z <= N:
cnt += 1
a.append([2, p[i], 2])
print(cnt)
Mystery keys โ
from bisect import bisect_left, bisect_right
mx = 10**6
spf = [False, False] + [True for i in range(mx)]
for i in range(2, int(math.sqrt(mx)) + 1):
if spf[i] == True:
for j in range(i * i, mx + 1, i):
spf[j] = False
p = []
for i in range(len(spf)):
if spf[i]:
p.append(i)
p.sort()
n = len(p)
cnt = 0
N = int(input())
idx = bisect_right(p, N)
a = []
for i in range(1, idx):
z = 2 ** p[i]
if (2 < p[i] < z or 2 < z < p[i]) and z <= N:
cnt += 1
a.append([2, p[i], 2])
print(cnt)
Mystery keys โ
๐2