Cod sursa(job #1765020)

Utilizator UTCN_FrunzaUTCN Lazar Nitu Petruta UTCN_Frunza Data 26 septembrie 2016 10:34:16
Problema Potrivirea sirurilor Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 2.38 kb
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.Scanner;


public class Main {


  private static int expectedOutputCount;
  private static int[] expectedOutputValues;

  private static String whatToSearch;
  private static String whereToSearch;


  public static void main(String[] args) throws URISyntaxException {
    readInput();

    SearchEngine searchEngine = new SearchEngine();

    Long startTime = System.currentTimeMillis();
    Result output = searchEngine.search(whatToSearch, whereToSearch);
    Long runTime = System.currentTimeMillis() - startTime;
    readOutput();


    if (runTime > 40) {
      System.out.println("Your program exceeded the time limit.");
    }
    if (output.getNumberOfOccurrences() == expectedOutputCount && Arrays.equals(expectedOutputValues, output.getOccurrencePositions())) {
      System.out.println("Test was successful in: " + runTime);
    } else {
      System.out.println("Test failed in: " + runTime);
    }
  }



  private static void readInput() {
    try (Scanner scanner = new Scanner(Main.class.getResourceAsStream("input.txt"))) {
      whatToSearch = scanner.next();
      whereToSearch = scanner.next();
    }
  }


  private static void readOutput() {
    try (Scanner scanner = new Scanner(Main.class.getResourceAsStream("output.txt"))) {
      expectedOutputCount = scanner.nextInt();
      if (expectedOutputCount > 1000) {
        expectedOutputValues = new int[1000];
      } else {
        expectedOutputValues = new int[expectedOutputCount];
      }
      for (int i = 0; i < expectedOutputValues.length; i++) {
        expectedOutputValues[i] = scanner.nextInt();
      }
    }
  }

  public static class Result {

    private int numberOfOccurrences;

    private int[] occurrencePositions;

    public Result(int numberOfOccurrences, int[] occurrencePositions) {
      this.numberOfOccurrences = numberOfOccurrences;
      this.occurrencePositions = occurrencePositions;
    }

    public Result() {
    }

    public int getNumberOfOccurrences() {
      return numberOfOccurrences;
    }

    public void setNumberOfOccurrences(int numberOfOccurrences) {
      this.numberOfOccurrences = numberOfOccurrences;
    }

    public int[] getOccurrencePositions() {
      return occurrencePositions;
    }

    public void setOccurrencePositions(int[] occurrencePositions) {
      this.occurrencePositions = occurrencePositions;
    }
  }

}