public class ACM_ICPC_TEAM {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int M=sc.nextInt();
sc.nextLine();
String s[]=new String[N];
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++);
{
s[i]=sc.nextLine().toString();
}
}
BitSet b1=new BitSet(M);
BitSet b2=new BitSet(M);
BitSet b3=new BitSet(M);
int max=0,count=0,count1=0;
for(int i=0;i<N;i++)
{ b1=fromString(s[i]);
for(int j=i+1;j<N;j++)
{
b3=(BitSet) b1.clone();
b2=fromString(s[j]);
b3.or(b2);
count=b3.cardinality();
if(count>max)
{
max=count;
count1=1;
}
else if(count==max)
count1++;
}
}
System.out.println(count+"\n"+count1);
}
public static BitSet fromString(String s)
{
return BitSet.valueOf(new long[] { Long.parseLong(s,2) });
}
public static String toString(BitSet b)
{
return Long.toString(b.toLongArray()[0], 2);
}
}
fromString
Мой дает мне NumberFormatException
, когда я прохожу двоичную строку Lage размера (~ 500), его работы абсолютно нормально для небольших строк длины.NumberFormatException при преобразовании из двоичной строки
Просто догадка: вы читаете следующий int, но число может быть больше. –
Измените свой вопрос, чтобы включить фактический текст исключения, включая трассировку стека. Укажите, какая строка кода, который вы отправили, вызывает исключение. – Kenster
Пожалуйста, ознакомьтесь с [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и просмотрите сообщение. –