Skip to content

Commit e7394cb

Browse files
Add files via upload
1 parent 3e8a9b4 commit e7394cb

File tree

3 files changed

+187
-0
lines changed

3 files changed

+187
-0
lines changed

29 - Bitwise AND/Solution.c

+116
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
#include <assert.h>
2+
#include <limits.h>
3+
#include <math.h>
4+
#include <stdbool.h>
5+
#include <stddef.h>
6+
#include <stdint.h>
7+
#include <stdio.h>
8+
#include <stdlib.h>
9+
#include <string.h>
10+
11+
char* readline();
12+
char** split_string(char*);
13+
14+
15+
void calculate_the_maximum(int n, int k) {
16+
int i,j;
17+
int max=0;
18+
int h=0;
19+
for(i=1;i<n;i++)
20+
{
21+
for(j=i+1;j<=n;j++)
22+
{ int v=i&j;
23+
if(v>=k)
24+
break;
25+
if(max<v)
26+
max=v;
27+
28+
}
29+
30+
}
31+
printf("%d\n",max);
32+
33+
34+
}
35+
36+
37+
int main()
38+
{
39+
char* t_endptr;
40+
char* t_str = readline();
41+
int t = strtol(t_str, &t_endptr, 10);
42+
43+
if (t_endptr == t_str || *t_endptr != '\0') { exit(EXIT_FAILURE); }
44+
45+
for (int t_itr = 0; t_itr < t; t_itr++) {
46+
char** nk = split_string(readline());
47+
48+
char* n_endptr;
49+
char* n_str = nk[0];
50+
int n = strtol(n_str, &n_endptr, 10);
51+
52+
if (n_endptr == n_str || *n_endptr != '\0') { exit(EXIT_FAILURE); }
53+
54+
char* k_endptr;
55+
char* k_str = nk[1];
56+
int k = strtol(k_str, &k_endptr, 10);
57+
calculate_the_maximum(n,k);
58+
if (k_endptr == k_str || *k_endptr != '\0') {
59+
exit(EXIT_FAILURE);
60+
}
61+
}
62+
63+
return 0;
64+
}
65+
66+
char* readline() {
67+
size_t alloc_length = 1024;
68+
size_t data_length = 0;
69+
char* data = malloc(alloc_length);
70+
71+
while (true) {
72+
char* cursor = data + data_length;
73+
char* line = fgets(cursor, alloc_length - data_length, stdin);
74+
75+
if (!line) { break; }
76+
77+
data_length += strlen(cursor);
78+
79+
if (data_length < alloc_length - 1 || data[data_length - 1] == '\n') { break; }
80+
81+
size_t new_length = alloc_length << 1;
82+
data = realloc(data, new_length);
83+
84+
if (!data) { break; }
85+
86+
alloc_length = new_length;
87+
}
88+
89+
if (data[data_length - 1] == '\n') {
90+
data[data_length - 1] = '\0';
91+
}
92+
93+
data = realloc(data, data_length);
94+
95+
return data;
96+
}
97+
//Aditya Seth
98+
char** split_string(char* str) {
99+
char** splits = NULL;
100+
char* token = strtok(str, " ");
101+
102+
int spaces = 0;
103+
104+
while (token) {
105+
splits = realloc(splits, sizeof(char*) * ++spaces);
106+
if (!splits) {
107+
return splits;
108+
}
109+
110+
splits[spaces - 1] = token;
111+
112+
token = strtok(NULL, " ");
113+
}
114+
115+
return splits;
116+
}

29 - Bitwise AND/Solution.cpp

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
int main()
6+
{
7+
int t;
8+
cin >> t;
9+
10+
int N, K;
11+
12+
for(int i = 0; i < t; i++)
13+
{
14+
vector<int> s;
15+
cin >> N >> K;
16+
17+
for(int j = 1; j <= N; j++)
18+
{
19+
s.push_back(j);
20+
}
21+
22+
int maximum = 0;
23+
24+
for(int A = 0; A < N; A++)
25+
{
26+
for(int B = A + 1; B < N; B++)
27+
{
28+
if((s[A] & s[B]) < K && (s[A] & s[B]) > maximum)
29+
maximum = (s[A] & s[B]);
30+
}
31+
}
32+
33+
cout << maximum << endl;
34+
}
35+
//Aditya Seth
36+
return 0;
37+
}
38+

29 - Bitwise AND/Solution.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/python3
2+
3+
import math
4+
import os
5+
import random
6+
import re
7+
import sys
8+
9+
10+
def bitwiseAnd(N, K):
11+
12+
13+
return (K-1 if ((K-1) | K) <= N else K-2)
14+
15+
16+
if __name__ == '__main__':
17+
fptr = open(os.environ['OUTPUT_PATH'], 'w')
18+
19+
t = int(input().strip())
20+
21+
for t_itr in range(t):
22+
first_multiple_input = input().rstrip().split()
23+
24+
count = int(first_multiple_input[0])
25+
26+
lim = int(first_multiple_input[1])
27+
28+
res = bitwiseAnd(count, lim)
29+
30+
fptr.write(str(res) + '\n')
31+
32+
fptr.close()
33+
#Aditya Seth

0 commit comments

Comments
 (0)