[algogeeks] Re: Delete element in a sorted array with O(1) time complexity.

2007-08-19 Thread Minhaz Ul-Alam
impossible , ofcourse, if not implemented with a linked list. But if ur
implementation permits, then you can put a suitable no. in its place to
indicate deleted values, say,-1 , for an array of non negative integers.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~--~~~~--~~--~--~---



[algogeeks] Re: Why we need prime numbers?

2007-06-15 Thread Minhaz Ul-Alam
thanks bart, and again if someone checks his/her mail frequently then its
more important for him not the older mail but the newer one. So why we
should not  prefer top post ?

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~--~~~~--~~--~--~---



[algogeeks] Re: Getting Wronge Answer

2007-06-09 Thread Minhaz Ul-Alam
hi mukesh,
thanx , i got it after all.
minhaz.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~--~~~~--~~--~--~---



[algogeeks] Re: Getting Wronge Answer

2007-06-06 Thread Minhaz Ul-Alam
hey mukesh,
this code got 3 P.E. I am not sure why. Is it helpful?


#includestdio.h
#includestring
using namespace std;
int res[20],taken[20],c_len; bool p[35];
void prime(void);
void init(void);
void dp(int);

void main(void){
 int cases=0;
/* freopen(c:pr.txt,w,stdout);*/
 prime();
/*/ for(c_len=1;c_len17;c_len++){*/
 while(scanf(%d,c_len)==1){
 // if(cases0)puts();
  cases++; init();
  res[0]=1;taken[1]=1;
  printf(Case %d:\n,cases);
  dp(1);
  puts();
 }
}
void dp(int n){
 int i;
 if(n==c_len){
  if(p[res[c_len-1]+1]==1){
   for(i=0;ic_len;i++){
printf(%d ,res[i]);
   }
   puts();
  }
 }
 for(i=2;i=c_len;i++){
  if(taken[i]==0  p[res[n-1]+i]==1){
   res[n]=i;
   taken[i]=1;
   dp(n+1);
   taken[i]=0;
  }
 }
}
void init(void){
 memset(res[0],0,18);
 memset(taken[0],0,18);
}
void prime(void){
 for(int i=1;i32,p[i]=false ;i++);
 p[2]=p[3]=p[5]=p[7]=p[11]=true;
 p[13]=p[17]=p[19]=p[23]=p[29]=p[31]=true;
}

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~--~~~~--~~--~--~---



[algogeeks] Re: Graph Problem

2007-05-21 Thread Minhaz Ul-Alam
Can it be a solution?
At first let us think all the edges are undirected. That is if a adjacent to
b then both a-b  and b-a are present. then we discard a-b if a is the
current vertex with maximum outdegree and b is its adjacent with minimum
outdegree and b-a is present
we continue it again and again untill all the extra edges are removed.

will it work?

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~--~~~~--~~--~--~---



[algogeeks] Re: problem regarding lexicographic path

2006-12-14 Thread Minhaz Ul-Alam
well mukesh ,
I solved the problem iteratively from right to left  and filling up an arry.
Here is my code. I think Lago Haryanto was right. you have to select and
find out the lexicographically shortest path greedily.

Minhaz

code:

/* @JUDGE_ID: 55890 116 C++*/

#includestdio.h

void min3(int,int);

void dp(void);

void print(void);

struct datum{

long long cur_val;

long long cur_sum;

int nextro;

};

struct datum data[11][101];

int cur_ro,cur_col;

void main(){

int i,j;

while(scanf(%d,cur_ro)==1){

scanf(%d,cur_col);

for(i=1;i=cur_ro;i++){

for(j=1;j=cur_col;j++){

scanf(%lld,data[i][j].cur_val);

}

}

dp();

print();

}

}

void dp(void){

int i,j;

for(i=1;i=cur_ro;i++)

data[i][cur_col].cur_sum=data[i][cur_col].cur_val;

for(j=cur_col-1;j0;j--){

for(i=1;i=cur_ro;i++){

min3(i,j);

}

}

}

void min3(int row,int col){

int a,b,c;

long long sum_a,sum_b,sum_c;

b=row;

sum_b=data[row][col+1].cur_sum;

a=row-1;

c=row+1;

if(row==1)

a=cur_ro;

if(row==cur_ro)

c=1;

sum_a=data[a][col+1].cur_sum;

sum_c=data[c][col+1].cur_sum;

if(sum_asum_b){

if(sum_asum_c){

data[row][col].nextro=a;

data[row][col].cur_sum=sum_a+data[row][col].cur_val;

}

else if(sum_a==sum_c){

if(ac){

data[row][col].nextro=a;

data[row][col].cur_sum=sum_a+data[row][col].cur_val;

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

else if(sum_a==sum_b){

if(ab){

if(sum_asum_c){

data[row][col].nextro=a;

data[row][col].cur_sum=sum_a+data[row][col].cur_val;

}

else if(sum_a==sum_c){

if(ac){

data[row][col].nextro=a;

data[row][col].cur_sum=sum_a+data[row][col].cur_val;

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

else{

if(sum_bsum_c){

data[row][col].nextro=b;

data[row][col].cur_sum=sum_b+data[row][col].cur_val;

}

else if(sum_b==sum_c){

if(bc){

data[row][col].nextro=b;

data[row][col].cur_sum=sum_b+data[row][col].cur_val;

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

}

else{

if(sum_bsum_c){

data[row][col].nextro=b;

data[row][col].cur_sum=sum_b+data[row][col].cur_val;

}

else if(sum_b==sum_c){

if(bc){

data[row][col].nextro=b;

data[row][col].cur_sum=sum_b+data[row][col].cur_val;

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

else{

data[row][col].nextro=c;

data[row][col].cur_sum=sum_c+data[row][col].cur_val;

}

}

}

void print(void){

int min_ro,i;

long long min_sum;

if(cur_ro!=0)

min_ro=1;

else

min_ro=0;

if(cur_col!=0)

min_sum=data[1][1].cur_sum;

else

min_sum=0;

for(i=2;i=cur_ro;i++){

if(min_sumdata[i][1].cur_sum){

min_sum=data[i][1].cur_sum;

min_ro=i;

}

}

printf(%d,min_ro);

for(i=1;icur_col;i++){

min_ro=data[min_ro][i].nextro;

printf( %d,min_ro);

}

printf(\n%lld\n,min_sum);

}



On 12/13/06, mukesh tiwari [EMAIL PROTECTED] wrote:


 hi Lego Haryanto
   i tried ur metoh but still not working ...here is my code and i m
 tired with this program . i am not getting even a single method to find
 lexicographic shortest path.


 #includestdio.h

int min1(int k,int m,int n)
{
int min;
min=k;
if(minm)
 min=m;
if(minn)
  min=n;
return(min);
}
main()
{

int
 m1[100][100],a[100][100],i,j,m,n,min,k,arr[100],t,min2,t1,t2,t3,v1;
while(scanf(%d%d,m,n)==2)
 {
for(i=0;im;i++)
for(j=0;jn;j++)
scanf(%d,a[i][j]);

for(i=0;im;i++)
m1[i][0]=a[i][0];
for(j=1;jn;j++)
for(i=0;im;i++)

 m1[i][j]=a[i][j]+min1(m1[(i+m-1)%m][j-1],m1[i][j-1],m1[(i+1)%m][j-1]);

/*for(i=0;im;i++)
{
for(j=0;jn;j++)
printf(%d,m1[i][j]);
printf(\n);
}
printf(\n);*/
min2=m1[0][n-1];
k=0;
for(i=1;im;i++)
if(m1[i][n-1]min2)
  {
min2=m1[i][n-1];
k=i;