[ create a new paste ] login | about

Link: http://codepad.org/NlxBSpON    [ raw code | output | fork ]

C++, pasted on May 14:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int minans;
void solve(int * box,bool * status,int number,int bits,int min){//p=led number=number
	int p,q;
	int * box1 = new int[number];
	for(int ans=bits-1,k=0;ans>=0&&k<bits;--ans,++k){		 
		for(int i=0;i<number;++i){
			if(status[k]){
				q=pow(2,ans);
				p=box[i];
				p&=~q;
				box1[i]=p;
			}		
		}		
		sort(box1,box1+number);
		if(number==unique(box1,box1+number)-box1){//recursive
				min--;
				status[k]=0;		
			if(min<=minans&&min>=log2(number)){
				minans=min;
			}	
			solve(box1,status,number,bits,min);
		}
	}
	delete [] box1 ;
}
int main(){
	int test,number,temp,bits,min;
	cin>>test;
	while(test--){
		cin>>bits>>number;
		minans=min=bits;
		if(!(number==1)){
		int * box = new int[number];
		bool * status = new bool[bits];
		for(int i=0;i<number;++i){
			box[i]=0;
			for(int j=0;j<bits;++j){
				cin>>temp;
				status[j]=1;
				box[i]+=temp*pow(2,bits-1-j);
			}	
		}
		solve(box,status,number,bits,min);
		cout<<minans<<endl;
		delete [] box ;
		}
		else{
			for(int j=0;j<bits;++j)
				cin>>temp;
			cout<<"0"<<endl;
		}
	}
	return 0;
}


Output:
1
2
3
In function 'void solve(int*, bool*, int, int, int)':
Line 12: error: call of overloaded 'pow(int, int&)' is ambiguous
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: