Akash and Function CodeChef Solution:
Akash has his maths test tomorrow. He secretly found out one of the questions from the test. As the test is online, he wants to write a code that solves the question. However, he is not good at coding and thus, wants Chef to help him with that.
Chef is given a function F(X)F(X) such that the condition:
- F(X)=F(2⋅X)F(X)=F(2⋅X)
holds true for all XX, where XX is a positive integer.
For a given positive integer NN, find the maximum number of distinct elements in the array [F(1),F(2),F(3),…,F(N)][F(1),F(2),F(3),…,F(N)].
Input Format
- First line will contain TT – the number of test cases. Then the test cases follow.
- Each test case contains a single line of input, one integer NN.
Output Format
For each test case, output in a single line, the maximum number of distinct elements in the array [F(1),F(2),F(3),…,F(N)][F(1),F(2),F(3),…,F(N)].
Constraints
- 1≤T≤10001≤T≤1000
- 1≤N≤1091≤N≤109
Subtasks
- Subtask 1 (30 points): 1≤N≤10001≤N≤1000
- Subtask 2 (70 points): Original Constraints.
Sample Input 1
2
2
5
Sample Output 1
1
3
Explanation
Test case 11: Let X=1X=1. Thus, 2=2⋅1=2⋅X2=2⋅1=2⋅X. Therefore, F(1)=F(2)F(1)=F(2). So, in the array [F(1),F(2)][F(1),F(2)], there is only 11 distinct element.
Test case 22: Here, we can take X=1X=1. Thus F(1)=F(2)F(1)=F(2). Similarly, if we take X=2X=2, F(2)=F(4)F(2)=F(4). This means that F(1)=F(2)=F(4)F(1)=F(2)=F(4).
However, it can be possible that the values F(1),F(3),F(1),F(3), and F(5)F(5) are distinct. Hence, the maximum number of distinct elements in the array [F(1),F(2),F(3),F(4),F(5)][F(1),F(2),F(3),F(4),F(5)] is 33.
Akash and Function Codechef Solution
C++
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int P;
int S;
cin>>P;
while (P--) {
int S;
cin>>S;
S++; cout<<S/2<<endl;
}
return 0;
}
Java
import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
Scanner sc=new Scanner(System.in);
int testCase=sc.nextInt();
while(testCase>0)
{
int n=sc.nextInt();
int ans=(n+1)/2;
System.out.println(ans);
testCase=testCase-1;
}
}
}
Python
p = int(input())
while (p > 0):
n = int(input())
pp = int((n+1)/2)
print(pp)
p = p - 1
Akash and Function codechef Solution Tutorial
Read More Post Here