All pastes #768784 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-11-10 21:46 UTC
rendered paste body
/*
ID: iamnotnad1
PROG: explore
LANG: JAVA
*/
   import java.util.Scanner;
   import java.io.*;

   class Explore
   {
       public static void  main(String[] args) throws FileNotFoundException
      {
         Scanner sc=new Scanner(System.in);
         System.out.print("Enter the total number of landmarks followed by the available time: ");
         int landmarks=sc.nextInt(), time=sc.nextInt();
         System.out.println("Enter where each landmark is: ");
         int[] pos=new int[landmarks];
         for(int k=0;k<landmarks;k++)
            pos[k]=sc.nextInt();
         System.out.println("You can visit "+evaluate(landmarks, time, pos));	
      }
       public static int evaluate(int landmarks,int time, int[] array)
      {
         int negative=0, positive=0, neg=0, pos=0;
         for(int k=0;k<landmarks;k++)
            if(array[k]<0)
            {
               positive=positive+array[k];
               pos++;	
            }  
         for(int k=0;k<landmarks;k++)
            if(array[k]<0)
            {
               negative=negative+(-1)*(array[k]);
               neg++;			
            } 
         if(pos>neg&&time-positive<time/2)
            return pos;
         else if(pos>neg&&time-positive>time/2)
         {
            int dre=0, leftover=time-positive*2, max=0;
            while(leftover>0)
            {
               for(int k=0;k<landmarks;k++)
                  if(array[k]<dre&&max>array[k])
                     max=array[k];
               dre=max;
               if(positive*2+(-1)*dre<time)
               {
                  leftover=leftover+dre;				
                  pos++;			
               }        
            }
            return pos;			
         }		
         else if(neg>pos&&time-(-1)*negative>time/2)
         {
            int dre=0, leftover=time-(-1)*negative*2, max=0;
            while(leftover>0)
            {
               for(int k=0;k<landmarks;k++)
                  if(array[k]>dre&&max<array[k])
                     max=array[k];
               dre=max;
               if((-1)*negative*2+dre<time)
               {
                  leftover=leftover-dre;				
                  neg++;			
               }        
            }
            return neg;
         }		
         return neg;
      }
   }