/* * Solution Template for Melody * * Australian Informatics Olympiad 2021 * * This file is provided to assist with reading and writing of the input * files for the problem. You may modify this file however you wish, or * you may choose not to use this file at all. */ import java.io.*; class Solution { /* N is the number of notes. */ private static int N; /* K is the largest number which could be a note. */ private static int K; /* S contains the sequence of notes forming the song. */ private static int S[] = new int[100005]; private static int answer; /* * Read the next token from the input file. * Tokens are separated by whitespace, i.e., spaces, tabs and newlines. * If end-of-file is reached then an empty string is returned. */ private static String readToken(BufferedReader in) throws IOException { StringBuffer ans = new StringBuffer(); int next; /* Skip any initial whitespace. */ next = in.read(); while (next >= 0 && Character.isWhitespace((char)next)) next = in.read(); /* Read the following token. */ while (next >= 0 && ! Character.isWhitespace((char)next)) { ans.append((char)next); next = in.read(); } return ans.toString(); } public static void main(String[] args) throws IOException { /* Open the input and output files. */ BufferedReader input_file = new BufferedReader(new FileReader( "melodyin.txt")); BufferedWriter output_file = new BufferedWriter(new FileWriter( "melodyout.txt")); /* Read the value of N and K. */ N = Integer.parseInt(readToken(input_file)); K = Integer.parseInt(readToken(input_file)); /* Read each note in the song. */ for (int i = 0; i < N; i++) { S[i] = Integer.parseInt(readToken(input_file)); } /* * TODO: This is where you should compute your solution. Store the * smallest possible number of notes Melody can change so that her song * is nice into the variable answer. */ /* Write the answer to the output file. */ output_file.write(answer + "\n"); /* Finally, close the input/output files. */ input_file.close(); output_file.close(); } }