結果

問題 No.3512 moesode
コンテスト
ユーザー msksknkn
提出日時 2026-05-02 20:14:00
言語 Java
(openjdk 25.0.2)
コンパイル:
javac -encoding UTF8 _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true _class_
結果
AC  
実行時間 765 ms / 2,000 ms
コード長 1,178 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 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
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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);
		}
	}

}
0