Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.util.Scanner;
- import java.io.FileWriter;
- import java.io.FileReader;
- import java.util.Arrays;
- /**
- * Входные данные:<br/>
- * Первая строка должна содержать одно целое число (1 <= x <= 10) - количество тестов.<br/>
- * Следующая строка должна содержать одно целое число (1 <= n <= 1000) - количество прямоугольников.<br/>
- * Следующая строка должна содержать n целых чисел (1 <= a[i] <= n) - длины прямоугольников.<br/><br/>
- * Выходные данные:<br/>
- * Для каждого набора входных данных выводится одно целое число - наибольшая возможная длина стороны квадрата.<br/><br/>
- *
- * Пример.<br/><br/>
- *
- * Входные данные:<br/>
- * 4<br/>
- * 5<br/>
- * 4 3 1 4 5<br/>
- * 4<br/>
- * 4 4 4 4<br/>
- * 3<br/>
- * 1 1 1<br/>
- * 5<br/>
- * 5 5 1 1 5<br/><br/>
- * Выходные данные:<br/>
- * 3<br/>
- * 4<br/>
- * 1<br/>
- * 3
- */
- public class MaximumSquare
- {
- public static void getSolution() throws IOException
- {
- input();
- }
- private static void input() throws IOException
- {
- Scanner scanner = new Scanner(System.in);
- FileWriter fileWriter = new FileWriter("C:\\Users\\slar1\\IdeaProjects\\Education\\src\\Tasks\\Task1\\Input.txt");
- System.out.print("\nВведите количество тестов: ");
- int numberOfTests = scanner.nextInt();
- fileWriter.write(numberOfTests + "\n");
- for (int numberOfTestsCount = 0;
- numberOfTestsCount < numberOfTests;
- numberOfTestsCount++)
- {
- System.out.print("\nТест " + (numberOfTestsCount + 1));
- System.out.print("\nВведите количество прямоугольников: ");
- int numberOfRectangles = scanner.nextInt();
- fileWriter.write(numberOfRectangles + "\n");
- System.out.print("Введите длины прямоугольников: ");
- for (int numberOfRectanglesCount = 0;
- numberOfRectanglesCount < numberOfRectangles;
- numberOfRectanglesCount++)
- {
- int lengthOfRectangle = scanner.nextInt();
- fileWriter.write
- (
- String.valueOf
- (
- numberOfRectanglesCount == numberOfRectangles - 1 ?
- lengthOfRectangle :
- lengthOfRectangle + " "
- )
- );
- }
- fileWriter.write
- (
- numberOfTestsCount == numberOfTests - 1 ?
- "" :
- "\n"
- );
- }
- scanner.close();
- fileWriter.close();
- inputRead();
- }
- private static void inputRead() throws IOException
- {
- Scanner scanner = new Scanner(new FileReader("C:\\Users\\slar1\\IdeaProjects\\Education\\src\\Tasks\\Task1\\Input.txt"));
- int[] arrayOfLengthOfRectangles;
- while (scanner.hasNextLine())
- {
- int numberOfTests = Integer.parseInt(scanner.nextLine());
- for (int numberOfTestsCount = 0; numberOfTestsCount < numberOfTests; numberOfTestsCount++)
- {
- arrayOfLengthOfRectangles = new int[Integer.parseInt(scanner.next())];
- for (int numberOfRectanglesCount = 0;
- numberOfRectanglesCount < arrayOfLengthOfRectangles.length;
- numberOfRectanglesCount++)
- arrayOfLengthOfRectangles[numberOfRectanglesCount] = Integer.parseInt(scanner.next());
- calculate(arrayOfLengthOfRectangles);
- }
- }
- scanner.close();
- }
- private static void calculate(int[] arrayOfLengthOfRectangles) throws IOException
- {
- int count = 0;
- Arrays.sort(arrayOfLengthOfRectangles);
- int x = arrayOfLengthOfRectangles.length;
- int y = arrayOfLengthOfRectangles[arrayOfLengthOfRectangles.length - 1];
- int[][] doubleArrayOfLengthOfRectangles = new int[y][x];
- for (int i = 0; i < x; i++)
- for (int j = y; j > y - arrayOfLengthOfRectangles[i]; j--)
- doubleArrayOfLengthOfRectangles[j - 1][i] = 1;
- int a = x - 1;
- int b = y;
- while ((a != 0 || b != 0) && (doubleArrayOfLengthOfRectangles[b - 1][a] != 0))
- {
- doubleArrayOfLengthOfRectangles[b - 1][a] = 2;
- count++;
- a--;
- b--;
- }
- output(count);
- System.out.println(Arrays.toString(arrayOfLengthOfRectangles));
- for (int i = 0; i < y; i++)
- {
- for (int j = 0; j < x; j++)
- {
- System.out.print(doubleArrayOfLengthOfRectangles[i][j] + " ");
- }
- System.out.println();
- }
- System.out.println("Длина квадрата: " + count);
- }
- private static void output(int lengthOfSquare) throws IOException
- {
- FileWriter fileWriter = new FileWriter("C:\\Users\\slar1\\IdeaProjects\\Education\\src\\Tasks\\Task1\\Output.txt");
- fileWriter.write(lengthOfSquare + "\n");
- fileWriter.close();
- }
- public static void main(String[] args) throws IOException
- {
- getSolution();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement