結果
問題 |
No.694 square1001 and Permutation 3
|
ユーザー |
![]() |
提出日時 | 2021-01-25 21:46:17 |
言語 | Java (openjdk 23) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,818 bytes |
コンパイル時間 | 3,577 ms |
コンパイル使用メモリ | 78,308 KB |
実行使用メモリ | 70,472 KB |
最終ジャッジ日時 | 2024-06-22 18:17:43 |
合計ジャッジ時間 | 7,856 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 1 |
other | AC * 7 TLE * 1 -- * 5 |
ソースコード
import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; long count = 0; ArrayList<Integer> list = new ArrayList<>(); list.add(0); list.add(Integer.MAX_VALUE); for (int i = 0; i < n; i++) { arr[i] = Integer.parseInt(br.readLine()); int left = 0; int right = list.size(); while (right - left > 1) { int m = (left + right) / 2; if (list.get(m) <= arr[i]) { left = m; } else { right = m; } } count += list.size() - right - 1; list.add(right, arr[i]); } StringBuilder sb = new StringBuilder(); sb.append(count).append("\n"); for (int i = 0; i < n - 1; i++) { int left = 0; int right = list.size(); while (right - left > 1) { int m = (left + right) / 2; if (list.get(m) < arr[i]) { left = m; } else { right = m; } } count -= left; left = 0; right = list.size(); while (right - left > 1) { int m = (left + right) / 2; if (list.get(m) <= arr[i]) { left = m; } else { right = m; } } count += list.size() - right - 1; sb.append(count).append("\n"); } System.out.print(sb); } }