結果
| 問題 |
No.723 2つの数の和
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-11-28 00:41:51 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 852 ms / 2,000 ms |
| コード長 | 1,188 bytes |
| コンパイル時間 | 2,787 ms |
| コンパイル使用メモリ | 79,456 KB |
| 実行使用メモリ | 67,876 KB |
| 最終ジャッジ日時 | 2024-06-24 21:42:33 |
| 合計ジャッジ時間 | 15,380 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 22 |
ソースコード
package net.ipipip0129.yukicoder.No723;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num_len = scan.nextInt();
int base_num = scan.nextInt();
int[] num_array = new int[num_len];
Map<Integer, List<Integer>> num_map = new HashMap<>();
long ans_cnt = 0;
for (int i = 0; i < num_len; i++) {
int a = scan.nextInt();
num_array[i] = a;
List<Integer> li;
if (num_map.containsKey(a)) li = num_map.get(a);
else li = new ArrayList<>();
li.add(i);
num_map.put(a, li);
}
Arrays.sort(num_array);
for (int i = 0; i < num_len; i++) {
int sub = base_num - num_array[i];
if (num_array[i] <= base_num) {
if (num_map.containsKey(sub)) {
List<Integer> li = num_map.get(sub);
ans_cnt += li.size();
}
} else {
break;
}
}
System.out.println(ans_cnt);
}
}