結果
| 問題 | No.3512 moesode |
| コンテスト | |
| ユーザー |
msksknkn
|
| 提出日時 | 2026-05-02 20:14:00 |
| 言語 | Java (openjdk 25.0.2) |
| 結果 |
AC
|
| 実行時間 | 765 ms / 2,000 ms |
| コード長 | 1,178 bytes |
| 記録 | |
| コンパイル時間 | 1,973 ms |
| コンパイル使用メモリ | 86,312 KB |
| 実行使用メモリ | 60,356 KB |
| 最終ジャッジ日時 | 2026-05-02 20:14:21 |
| 合計ジャッジ時間 | 19,310 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
package no3512_moesode;
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int k = sc.nextInt();
int[] in = new int[n];
int[] out = new int[n];
for(int i = 0;i < m;i++) {
int a = sc.nextInt() - 1;
int b = sc.nextInt() - 1;
out[a]++;
in[b]++;
}int node = 0;
for(int i = 0;i < n;i++) {
if(out[i] > 0) {
node++;
}
}if(node <= k) {
int rem = k + 1 - node;
//System.out.println(rem);
ArrayList<Integer> num = new ArrayList<>();
for(int i = 0;i < n;i++) {
if(out[i] == 0) {
num.add(in[i]);
}
}Collections.sort(num,Collections.reverseOrder());
//System.out.println(num);
long ans = 0;
for(int i = 0;i < rem;i++) {
ans += Math.max(0, k - num.get(i));
}for(int i = 0;i < n;i++) {
if(out[i] != 0) {
ans += Math.max(0, k - in[i]);
}
}System.out.println(ans);
}else {
long ans = 0;
for(int i = 0;i < n;i++) {
if(out[i] != 0) {
ans += Math.max(0,k - in[i]);
}
}System.out.println(ans);
}
}
}
msksknkn