Pagini recente » Monitorul de evaluare | Cod sursa (job #1025178) | Istoria paginii runda/o-n_logan/clasament | Cod sursa (job #473153) | Cod sursa (job #1786627)
//package main;
import java.io.*;
public class Main {
static int[]nums;
public static int cautbin0(int x)
{
int lo=0;
int hi=nums.length-1;
int ok=0;
int res=-1;
while(lo<=hi)
{
int mid=(int)(lo+((double)hi-lo)/2);
if(nums[mid]>x)
{
hi=mid-1;
}
else{
if(nums[mid]==x) {
ok = 1;
res=mid;
}
lo=mid+1;
}
}
if(ok==0)
return -1;
return res;
}
public static int cautbin1(int x)
{
int lo=0;
int hi=nums.length-1;
int res=-1;
while(lo<=hi)
{
int mid=(int)(lo+((double)hi-lo)/2);
if(nums[mid]>x)
{
hi=mid-1;
}
else{
if(nums[mid]<=x) {
res=mid;
}
lo=mid+1;
}
}
return res;
}
public static int cautbin2(int x)
{
int lo=0;
int hi=nums.length-1;
int res=-1;
while(lo<=hi)
{
int mid=(int)(lo+((double)hi-lo)/2);
if(nums[mid]<x)
lo=mid+1;
else {
if(nums[mid]>=x)
{
res=mid;
}
hi=hi-1;
}
}
return res;
}
public static void main(String[] args) throws IOException {
//int[]nums={1,3,3,3,5};
//int []nums;
FileReader flIN = null;
FileWriter flOUT = null;
BufferedReader in;
BufferedWriter out;
int n=0;
try {
flIN = new FileReader("cautbin.in");
flOUT = new FileWriter("cautbin.out");
}
finally{
in=new BufferedReader(flIN);
out=new BufferedWriter(flOUT);
String s=in.readLine();
String []array=s.split(" ");
n=Integer.parseInt(array[0]);
nums=new int[n];
s=in.readLine();
array=s.split(" ");
for(int i=0;i<n;i++)
{
nums[i]=Integer.parseInt(array[i]);
}
int querries=0;
s=in.readLine();
array=s.split(" ");
querries=Integer.parseInt(array[0]);
for(int i=0;i<querries;i++)
{
s=in.readLine();
array=s.split(" ");
int command=Integer.parseInt(array[0]);
int x=Integer.parseInt(array[1]);
switch(command){
case 0:
int res=cautbin0(x);
if(res!=-1)
res++;
String inter=Integer.toString(res);
out.write(inter);
out.newLine();
break;
case 1:
out.write(Integer.toString(cautbin1(x)+1));
out.newLine();
break;
case 2:
out.write(Integer.toString(cautbin2(x)+1));
out.newLine();
break;
}
}
out.close();
in.close();
}
//System.out.println(cautbin2(nums, 3));
}
}