Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: utf-8
Méret: 2 KB
package szaruman;
import java.io.IOException;
@author
public class Main {
@param
public static void main(String[] args) {
BattleField bf = new BattleField();
try {
while (bf.nextField()) {
bf.loadField();
bf.sort();
bf.solve();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package szaruman;
import java.io.*;
@author
public class BattleField {
public int range;
public int count;
private BufferedReader bufRead;
public int[] armies;
public BattleField()
{
InputStream is = BattleField.class.getResourceAsStream( "army.txt" );
this.bufRead = new BufferedReader( new InputStreamReader(is) );
}
public boolean nextField() throws IOException
{
String line = bufRead.readLine();
if( !line.equals("-1 -1") ) {
String[] Rn = line.split(" ");
this.range = Integer.parseInt( Rn[0] );
this.count = Integer.parseInt( Rn[1] );
return true;
} else {
return false;
}
}
public void loadField() throws IOException {
String line = bufRead.readLine();
String[] raw_armies = line.split(" ");
armies = new int[raw_armies.length];
for( int i=0; i<raw_armies.length; i++ )
{
armies[i] = Integer.parseInt( raw_armies[i] );
}
}
public void sort() {
int min;
for( int i=0; i<armies.length; i++ )
{
min = i;
for( int a=i; a<armies.length; a++ )
{
if( armies[a] < armies[min] ) min = a;
}
int save = armies[i];
armies[i] = armies[min];
armies[min] = save;
}
}
public void solve()
{
int res = 0;
int carrier;
int i = 0;
while( i < armies.length )
{
carrier = getNearestNonCoveredArmy( i );
i = getNearestNonCoveredArmy( carrier )+1;
res++;
}
System.out.println(res);
}
private int getNearestNonCoveredArmy(int i) {
int a = i+1;
while( true )
{
if( a == armies.length ) return a-1;
if( armies[a] - armies[i] <= range )
{
a++;
} else break;
}
return a-1;
}
}