Submission #845411
Source Code Expand
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.InputMismatchException; import java.util.LinkedList; import java.util.Queue; class ArrayUtil { static int[] unique(int[] sorted) { int ptr = 1, cur = 0; int[] buffer = new int[sorted.length]; buffer[0] = sorted[0]; while (++cur < sorted.length) { if (sorted[cur] != sorted[cur - 1]) { buffer[ptr++] = sorted[cur]; } } return Arrays.copyOf(buffer, ptr); } static void compress(int[] a) { int n = a.length; int[] sorted = Arrays.copyOf(a, n); Arrays.sort(sorted); int[] unique = ArrayUtil.unique(sorted); for (int i = 0; i < n; i++) { a[i] = Arrays.binarySearch(unique, a[i]); assert a[i] >= 0; } } } public class Main { InputStream is; int __t__ = 1; int __f__ = 0; int __FILE_DEBUG_FLAG__ = __f__; String __DEBUG_FILE_NAME__ = "src/E2"; FastScanner in; PrintWriter out; public void solve() { int n = in.nextInt(); int[] a = in.nextIntArray(n); ArrayUtil.compress(a); int cnt = 0; for (int i = 0; i < n; i++) { if (i % 2 == 0 && a[i] % 2 != 0) cnt++; if (i % 2 != 0 && a[i] % 2 == 0) cnt++; } System.out.println(cnt / 2); } public void run() { if (__FILE_DEBUG_FLAG__ == __t__) { try { is = new FileInputStream(__DEBUG_FILE_NAME__); } catch (FileNotFoundException e) { e.printStackTrace(); } System.out.println("FILE_INPUT!"); } else { is = System.in; } in = new FastScanner(is); out = new PrintWriter(System.out); Thread t = new Thread(null, new Runnable() { @Override public void run() { solve(); } }, "lul", 1 << 27); t.start(); } public static void main(String[] args) { new Main().run(); } public void mapDebug(int[][] a) { System.out.println("--------map display---------"); for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.printf("%3d ", a[i][j]); } System.out.println(); } System.out.println("----------------------------"); System.out.println(); } public void debug(Object... obj) { System.out.println(Arrays.deepToString(obj)); } class FastScanner { private InputStream stream; private byte[] buf = new byte[1024]; private int curChar; private int numChars; public FastScanner(InputStream stream) { this.stream = stream; //stream = new FileInputStream(new File("dec.in")); } int read() { if (numChars == -1) throw new InputMismatchException(); if (curChar >= numChars) { curChar = 0; try { numChars = stream.read(buf); } catch (IOException e) { throw new InputMismatchException(); } if (numChars <= 0) return -1; } return buf[curChar++]; } boolean isSpaceChar(int c) { return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1; } boolean isEndline(int c) { return c == '\n' || c == '\r' || c == -1; } int nextInt() { return Integer.parseInt(next()); } int[] nextIntArray(int n) { int[] array = new int[n]; for (int i = 0; i < n; i++) array[i] = nextInt(); return array; } int[][] nextIntMap(int n, int m) { int[][] map = new int[n][m]; for (int i = 0; i < n; i++) { map[i] = in.nextIntArray(m); } return map; } long nextLong() { return Long.parseLong(next()); } long[] nextLongArray(int n) { long[] array = new long[n]; for (int i = 0; i < n; i++) array[i] = nextLong(); return array; } long[][] nextLongMap(int n, int m) { long[][] map = new long[n][m]; for (int i = 0; i < n; i++) { map[i] = in.nextLongArray(m); } return map; } double nextDouble() { return Double.parseDouble(next()); } double[] nextDoubleArray(int n) { double[] array = new double[n]; for (int i = 0; i < n; i++) array[i] = nextDouble(); return array; } double[][] nextDoubleMap(int n, int m) { double[][] map = new double[n][m]; for (int i = 0; i < n; i++) { map[i] = in.nextDoubleArray(m); } return map; } String next() { int c = read(); while (isSpaceChar(c)) c = read(); StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = read(); } while (!isSpaceChar(c)); return res.toString(); } String[] nextStringArray(int n) { String[] array = new String[n]; for (int i = 0; i < n; i++) array[i] = next(); return array; } String nextLine() { int c = read(); while (isEndline(c)) c = read(); StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = read(); } while (!isEndline(c)); return res.toString(); } } }
Submission Info
Submission Time | |
---|---|
Task | C - BBuBBBlesort! |
User | hiro116s |
Language | Java8 (OpenJDK 1.8.0) |
Score | 600 |
Code Size | 5049 Byte |
Status | AC |
Exec Time | 363 ms |
Memory | 20144 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | s1.txt, s2.txt |
All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, s1.txt, s2.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01.txt | AC | 303 ms | 19748 KB |
02.txt | AC | 339 ms | 19928 KB |
03.txt | AC | 303 ms | 18824 KB |
04.txt | AC | 299 ms | 18020 KB |
05.txt | AC | 363 ms | 19876 KB |
06.txt | AC | 351 ms | 19920 KB |
07.txt | AC | 335 ms | 19856 KB |
08.txt | AC | 262 ms | 17996 KB |
09.txt | AC | 286 ms | 18124 KB |
10.txt | AC | 291 ms | 19196 KB |
11.txt | AC | 263 ms | 17972 KB |
12.txt | AC | 271 ms | 18264 KB |
13.txt | AC | 279 ms | 18592 KB |
14.txt | AC | 302 ms | 18400 KB |
15.txt | AC | 307 ms | 18612 KB |
16.txt | AC | 287 ms | 18484 KB |
17.txt | AC | 319 ms | 20144 KB |
18.txt | AC | 163 ms | 8144 KB |
19.txt | AC | 162 ms | 8176 KB |
20.txt | AC | 159 ms | 8144 KB |
21.txt | AC | 159 ms | 8172 KB |
22.txt | AC | 159 ms | 8176 KB |
s1.txt | AC | 159 ms | 8172 KB |
s2.txt | AC | 162 ms | 8176 KB |