You are on page 1of 4

A subset in a sequence:-

t=int(input())
while(t>0):
n=int(input())
n=bin(n)
n=list(n)
l=len(n)
i=0
s=0
li=[]

while(l>2):
f=n[l-1]
x=pow(3,i)*int(f)
if(x!=0):
li.append(x)
s+=1
l-=1
i+=1
print(s)
print(*li)
t-=1

Anti-palindrome strings:-

import java.util.*;
class TestClass
{
public static void main(String[] args)
{
int t,i,j;
String s,s1;
Scanner sc=new Scanner(System.in);
t=sc.nextInt();
for(j=0;j<t;j++)
{
s=sc.next();
char a[]=s.toCharArray();
Arrays.sort(a);
s=String.copyValueOf(a);
if(s.charAt(0)==s.charAt(s.length()-1))
System.out.println("-1");
else
System.out.println(s);
}
}
}

Paths in graphs:-

import math
i=int(input())
if(i==1):
print(2,1)
print(1,2)
circles=int(math.log2(i))
ppp=circles
ans=2**(circles+1)
lines=(circles*4)+1
powerl=[0]*(circles+1)
for xh in range(1,circles+1):
powerl[xh]=2**xh
powerl.pop(0)
powerl=powerl[::-1]

count=0

count=0
gp=0

xx=[]
yy=[]

middle=[]

for x in range(1,lines):
if(gp==lines):
break
if(count==2):
xx.append(x-1)
yy.append(x+1)
xx.append(x)
yy.append(x+2)
x=x+1
middle.append(x+1)
count=0
gp=gp+2
else:

xx.append(x)
yy.append(x+1)

count=count+1
gp=gp+1

ram=len(yy)-1

hh=yy[len(yy)-1]-1
gff=hh
ans1=i-(2**ppp)
for dd in range(len(powerl)):

if((ans1-powerl[dd])>=0):
xx.append(1)
hh+=1
yy.append(hh)
xx.append(hh)
yy.append(middle[dd-1])
ans1=abs(ans1-powerl[dd])

if(ans1==1):

xx.append(1)
yy.append(hh+1)
xx.append(hh+1)
yy.append(hh+2)

yy[ram]=xx[len(xx)-1]+1
yy[ram-1]=xx[len(xx)-1]+1
if(i%2!=0):
print(yy[len(xx)-1],len(xx))
if(len(xx) >400):
uuu+=1
else:
print(xx[len(xx)-1]+1,len(xx))
if(len(xx) >400 ):
uuu+=1

for kg in range(len(xx)):
print(xx[kg],yy[kg])

The maximum distance :-

import java.util.Scanner;
import java.lang.Math;
class TestClass{
static void addUpdate(int [] arr,int u, int v, int w ){
for(int k=u-1;k<v;k++)
arr[k] = arr[k] + w;
}
static void mulUpdate(int [] arr,int u, int v, int w ){
for(int k=u-1;k<v;k++)
arr[k] = arr[k]*w;
}
static void maxDistance(int [] arr,int s ){
int first = -1,last = -1;
int maxD = -1;
for (int i = 0; i<arr.length; i++){
if(arr[i]==s){
first = i;
break;
}
}
for(int j=arr.length-1;j>=0;j--){
if(arr[j]==s){
last = j;
break;
}
}
if(first!=-1 && last!=-1){
maxD = last - first + 1;
System.out.println(maxD);
}
else
System.out.println(maxD);

}
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int[] elements = new int[a];
for(int k = 0;k<a;k++)
elements[k] = sc.nextInt();
int n = sc.nextInt();
int[][] arr = new int[n][4];
for(int i=0;i<n;i++){
for(int j=0;j<4;j++){
arr[i][j]= sc.nextInt();
if(arr[i][0]==3){
arr[i][1]= sc.nextInt();
break;
}
}
}
for(int i=0;i<n;i++){
if(arr[i][0]==1)
addUpdate(elements,arr[i][1],arr[i][2],arr[i][3]);
else if(arr[i][0]==2)
mulUpdate(elements,arr[i][1],arr[i][2],arr[i][3]);
else if(arr[i][0]==3)
maxDistance(elements,arr[i][1]);
}
}
}

You might also like