Cod sursa(job #2433587)

Utilizator radu.nastasaRadu-Ionut Nastasa radu.nastasa Data 28 iunie 2019 09:18:38
Problema Oras Scor 55
Compilator java Status done
Runda Arhiva de probleme Marime 1.89 kb
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {

        File inputFile = new File("oras.in");
        File outputFile = new File("oras.out");

        BufferedReader br = new BufferedReader(new FileReader(inputFile));
        int N = Integer.valueOf(br.readLine());

        long t1 = System.nanoTime();

        int[][] result = Main.calculateOneWayTrafficConfig(N);

        System.out.print((System.nanoTime() - t1) / 1000_000);

        BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile));

        writeResult(result, bw);

        bw.flush();
        bw.close();
    }

    private static int[][] calculateOneWayTrafficConfig(int n) {

        if (n % 2 == 0) {
            return null;
        }
        int[][] result = new int[n][n];

        for (int i = 1; i < n; i += 2) {
            result[0][i] = 1;
        }

        for (int i = 1; i < n; i++) {
            int[] previewsIntersection = result[i - 1];

            for (int j = 0; j < n; j++) {

                if (i == j || j == i - 1) {
                    continue;
                }
                int previewsIntersectionRoadDirection = previewsIntersection[j];
                result[i][j] = previewsIntersectionRoadDirection == 0 ? 1 : 0;
            }
        }
        return result;
    }


    private static void writeResult(int[][] result, BufferedWriter bw) throws IOException {

        if (result == null) {
            bw.write("-1");
            return;
        }
        for (int i = 0; i < result.length; i++) {
            for (int direction : result[i]) {
                bw.write(String.valueOf(direction));
            }
            if (i < result.length - 1) {
                bw.write("\n");
            }
        }
    }
}