0% found this document useful (0 votes)
6 views5 pages

All Codekaze

c++ programming

Uploaded by

Harshit Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views5 pages

All Codekaze

c++ programming

Uploaded by

Harshit Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

SAVE AND COST (C++)

#include <vector>
using namespace std;

typedef long long ll;

bool fn(vector<int>& a, vector<int>& b, ll x, ll mid) {


int n = a.size();
vector<int> vis(n, 0);
ll sum = 0;

for (int i = 0; i < n; i++) {


if (b[i] <= mid) {
sum += a[i];
vis[i] = 1;
}
}

ll mx = 0;

for (int i = 0; i < n; i++) {


if (!vis[i]) {
mx = max(mx, static_cast<ll>(a[i]));
}
}

return sum + mx >= x;


}

int scoreAndCost(int n, vector<int>& a, vector<int>& b, int x) {


ll ans = -1;
ll s = 0, e = 1e9;

while (s <= e) {
ll mid = (s + e) / 2;

if (fn(a, b, x, mid)) {
ans = mid;
e = mid - 1;
}
else {
s = mid + 1;
}
}

return static_cast<int>(ans);
}

SUPER MOVEMENT (JAVA)

long long superMovement(int n, vector<int> &a, int k) {


vector<long long>v(k-1,INT_MAX);
long long ans=0;
int j=0;
for(int i=0;i<n-1;i++){
if(j==k-1){
j=0;
continue;
}
long long x=abs(a[i]-a[i+1]);
v[j]=min(v[j],x);
j++;

}
for(auto i:v){
ans+=i;
}
return ans;
}TERMINAL PYTHON
def terminalDefence(n, m, a, h, b, k):
i, j, l = 0, 0, 0
C = [0] * (n + m)
while i < m or j < n:
if i != m and (j == n or a[i] < b[j]):
C[l] = (h[i] + k - 1) // k
i += 1
else:
C[l] = -1
j += 1
l += 1
cnt = req = 0
left = right = 0
for i in range(n + m):
if C[i] == -1:
cnt += 1
if cnt + req > n:
right = n - cnt
else:
left += 1
elif C[i] > left + right:
if cnt + req > n or C[i] > n: return 0
req = max(req, C[i] - left)
return 1

BINARY C++

struct segtree00 {
int len;
vector<int> v, lazy;

void init(int l) {
len = l;
lazy = v = vector<int>(4 * len);
}

void build(int id, int l, int r) {


if (l == r) {
v[id] = 0;
return;
}
int mid = (l + r) >> 1;
build(id << 1, l, mid);
build(id << 1 | 1, mid + 1, r);
v[id] = v[id << 1] + v[id << 1 | 1];
}
int query(int id, int tl, int tr, int qstart, int qend) {
if (lazy[id] != 0) {
v[id] = tr - tl + 1 - v[id];
if (tl != tr) {
lazy[id << 1] ^= lazy[id];
lazy[id << 1 | 1] ^= lazy[id];
}
lazy[id] = 0;
}
if (qstart > tr || qend < tl) {
return 0;
}
if (qstart <= tl && tr <= qend) {
return v[id];
}
int mid = (tl + tr) >> 1;
int lc = query(id << 1, tl, mid, qstart, qend);
int rc = query(id << 1 | 1, mid + 1, tr, qstart, qend);
int ans = lc + rc;
return ans;
}

void rupd(int id, int tl, int tr, int qstart, int qend, int upd) {
if (lazy[id] != 0) {
v[id] = tr - tl + 1 - v[id];
if (tl != tr) {
lazy[id << 1] ^= lazy[id];
lazy[id << 1 | 1] ^= lazy[id];
}
lazy[id] = 0;
}
if (qstart > tr || qend < tl) {
return;
}
if (qstart <= tl && tr <= qend) {
if (upd != 0) {
v[id] = tr - tl + 1 - v[id];
if (tl != tr) {
lazy[id << 1] ^= upd;
lazy[id << 1 | 1] ^= upd;
}
}
return;
}
int mid = (tl + tr) >> 1;
rupd(id << 1, tl, mid, qstart, qend, upd);
rupd(id << 1 | 1, mid + 1, tr, qstart, qend, upd);
v[id] = v[id << 1] + v[id << 1 | 1];
}
};

vector<int> binaryQueries(int n, vector<int> &a, int q, vector<vector<int>>


&queries) {
vector<segtree00> s(32);
for (int i = 0; i < 32; i++) {
s[i].init(n);
s[i].build(1, 0, n - 1);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < 32; j++) {
if ((1LL << j) & a[i]) {
s[j].rupd(1, 0, n - 1, i, i, 1);
}
}
}
vector<int> ans(q);
for (int i = 0; i < q; i++) {
long long x = 0;
for (int j = 0; j < 32; j++) {
if ((1LL << j) & queries[i][2]) {
s[j].rupd(1, 0, n - 1, queries[i][0], queries[i][1], 1);
}
long long y = s[j].query(1, 0, n - 1, queries[i][0], queries[i][1]);
if (y > 0) {
x |= (1LL << j);
}
}
ans[i] = x;
}
return ans;
}

MAXI AND c++


long long maxiAnd(int n,vector<int> &a){
// Write your code here
sort(a.begin(),a.end());
long long int ans =0;
int i=0;
for(int j=31;j>=0;j--)
{
int x=a[0]>>j;
if(x&1)
{
i=j;
break;
}
}

long long int result =0;


for(int j=i;j>=0;j--)
{
result += pow(2,j);
}

return result;
}

SECRET JAVA
public class Solution {
static int secretCode(int n, int []a) {

int sum=0;
for(int i=0;i<n;i++){
sum+=a[i];
if(i>=2){
if(sum%10==0){
return 1;
}
sum -= a[i-2];
}
}
return 0;

}
}

You might also like