ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1196. Экзамен по истории

time limit exceed on test 5?but i used binary search!Can everybody explain me!
Послано Aydar 4 апр 2011 22:07
import java.io.*;
import java.util.Scanner;
public class problem1196 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int sum=0;
int value=0;
int[] A=new int [n];
boolean[] map =new boolean[n];
for(int i=0;i<n;i++){
A[i]=sc.nextInt();
}
int m=sc.nextInt();
int[] B=new int[m];
for (int i=0;i<m;i++){
B[i]=sc.nextInt();
}
for (int i=0;i<m;i++){
value=B[i];

if (BinarySearch(A,0,n-1,value)!=0)
sum++;
}
System.out.println(sum);
}
public static long BinarySearch(int[] Mas,int left,int right,int value){
int half;
while(left<=right){
half=(left+right)/2;
if (value==Mas[half]) return Mas[half];
else if (value<Mas[half]) right=half-1;
else left=half+1;
}
return 0;
}}