Problema com vetor estático

Olá! Estou com um problema em um código Java, mais especificamente em passar valores para um vetor estático. Preciso que os vetores estáticos inicio e fim, recebam os valores de um outro vetor chamado lineint.

Segue o trecho do código:
for(int i = 1; i<lineint.length;i+=2){ //Valores de início
int c=0;
inicio = new int[lineint.length/2];
inicio[c]=lineint[i];
c++;
}

		for(int i = 2; i<lineint.length;i+=2){ //Valores de final
			int c=0;
			fim = new int[lineint.length/2];
			fim[c]=lineint[i];			
		}

Coloco também o código todo para que vocês possam entender melhor:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class Guloso {
static int selecaoGulosa(int[] ini, int[] fim, int n){

	int ultimaSelecionada=0;
	int selecionadas=0;
	String sel="1";
	
		
	if (n==0) return 0;
		// a primeira atividade é sempre selecionada
		selecionadas++;
	
			for (int i=1;i<n;i++)
		if (ini[i]>=fim[ultimaSelecionada]){
			String at = Integer.toString(i+1);
			sel = sel + " " + at;
			selecionadas++;
			ultimaSelecionada = i;
	}
		
		System.out.print(selecionadas+ " "+ sel);
	

	return selecionadas;
	}

// as atividades devem ser ordenadas pelo campo fim ou seja, as atividades que acabam primeiro ficam na frente
private static int numeroDeAtividades;
private static int numeroDeInstancias;
private static int[] inicio;
private static int[] fim;


public static void main(String[] args) {
	Scanner ler = new Scanner(System.in);

	System.out.printf("Informe o nome de arquivo texto:\n");
	String nome = ler.nextLine();
	
	try {
		FileReader arq = new FileReader(nome);
		BufferedReader lerArq = new BufferedReader(arq); 

		String linha = lerArq.readLine(); // lê a primeira linha
		numeroDeInstancias = Integer.parseInt(linha); // armazena a quantidade de "problemas" (linhas que serão resolvidas)
		
		
		linha = lerArq.readLine();
		String [] line = linha.split(" ");
		
		int[]lineint = new int[line.length];
		for (int i = 0; i < lineint.length; i++) {
			lineint[i] = Integer.parseInt(line[i]);
	
		}
		
		numeroDeAtividades = lineint[0];
		System.out.print(numeroDeAtividades+" "); //imprime a quantidade de atividades
		
							
		for(int i = 1; i<lineint.length;i+=2){ //Valores de início
			int c=0;
			inicio = new int[lineint.length/2];
			inicio[c]=lineint[i];
			c++;
					   
		}			

		
		for(int i = 2; i<lineint.length;i+=2){ //Valores de final
			int c=0;
			fim = new int[lineint.length/2];
			fim[c]=lineint[i];			
		
		}
		selecaoGulosa(inicio,fim,numeroDeAtividades);
				
	
		arq.close();
	} catch (IOException e) {
		System.err.printf("Erro na abertura do arquivo: %s.\n",
				e.getMessage());
	}

	
}

}

O ideal seria postar a origem da informação atribuída ao vetor lineint, pois aparentemente ela provém de um bloco de notas, pois todos os detalhes são importantes.

A seguir um print que atenta para isto:

Codificação funcional dentro do proposto:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class Guloso {
    //não mexi neste método pois não o questionamento se dá sobre outras coisas
    static int selecaoGulosa(int[] ini, int[] fim, int n) {

        int ultimaSelecionada = 0;
        int selecionadas = 0;
        String sel = "1";

        if (n == 0) {
            return 0;
        }
        // a primeira atividade é sempre selecionada (????)
        selecionadas++;

        for (int i = 1; i < n; i++) {
            if (ini[i] >= fim[ultimaSelecionada]) {
                String at = Integer.toString(i + 1);
                sel = sel + " " + at;
                selecionadas++;
                ultimaSelecionada = i;
            }
        }

        System.out.print(selecionadas + " " + sel);

        return selecionadas;
    }

// as atividades devem ser ordenadas pelo campo fim ou seja, as atividades que acabam primeiro ficam na frente
    private static int numeroDeAtividades;
    private static int numeroDeInstancias;
    private static int[] inicio;
    private static int[] fim;

    public static void main(String[] args) {
        Scanner ler = new Scanner(System.in);

        System.out.printf("Informe o nome de arquivo texto:\n");
        String nome = ler.nextLine();

        try (FileReader arq = new FileReader(nome)) {
            BufferedReader lerArq = new BufferedReader(arq);
            //a primeira linha tem o número de problemas
            String linha = lerArq.readLine(); // lê a primeira linha
            numeroDeInstancias = Integer.parseInt(linha);

            linha = lerArq.readLine();
            String[] line = linha.split(" ");
            //lendo mais números depois do split
            int[] lineint = new int[line.length];
            for (int i = 0; i < lineint.length; i++) {
                lineint[i] = Integer.parseInt(line[i]);
            }
            //quantidade de atividades em lineint[0]
            numeroDeAtividades = lineint[0];
            System.out.print(numeroDeAtividades + " "); //imprime a quantidade de atividades
            inicio = new int[lineint.length / 2];/*lugar mais adequado,
            função armazenar os valores constantes nos endereços impares do vetor lineint*/
            int c = 0;
            for (int i = 1; i < lineint.length; i += 2) {
                //int c = 0;//esta sobrecrevendo o c toda vez que o loop é executado
                //inicio = new int[lineint.length / 2];
                inicio[c] = lineint[i];//armazena o valor 
                c++;

            }
            fim = new int[lineint.length / 2];/*local adequado
            função, armazenar os valoes contidos nos endereços pares do vetor line int*/
            c = 0;//reiniciando o c
            //percorrendo o vetor em pares e 
            for (int i = 2; i < lineint.length; i += 2) { //Valores de final
                //int c = 0;
                //fim = new int[lineint.length / 2];//esta sobrecrevendo o vetor
                fim[c] = lineint[i];
                c++;//esqueceu de incrementar o c, então adicionei

            }
            selecaoGulosa(inicio, fim, numeroDeAtividades);

        } catch (IOException e) {
            System.err.printf("Erro na abertura do arquivo: %s.\n",
                    e.getMessage());
        }
    }
}