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;
}
}