Un approccio alterantivo puo' essere il seguente : osservando che la condizione è soddisfatta se un elemento è pari alla somma di tutti gli altri nella sottosequenza , ne discende che la somma degli elementi della sottosequenza è il doppio di quell'elemento . Per cui , detto max il maggiore di tutti gli elementi e somma la somma della sottosequenza deve risultare verificata la condizione somma=2*max , e quindi l'algoritmo risultante sarà il seguente :
codice:
 var 
  a[n]:array of integer ;
  b[blocchi] : array of boolean; 
  i,j,k,l,m,n,blocchi,max,somma: integer; 

 begin 
  blocchi:=n/k;
  for  i:=0 to   blocchi-1 do 
  begin 
   l:=i*k;
   m:=l+k;
   max=a[l];
   somma:=0;
   {calcola la somma e il max di ogni blocco}
   for   j:=l to  m do 
   begin 
    somma:=somma+a[j];
    if max>a[j] then max:=a[j];
   end; 
   {verifica se la somma è il doppio del max}    
   if somma=2*max then
    b[i]:=TRUE
   else
    b[j]:=FALSE;
  end;
 end.