Untitled

mail@pastecode.io avatar
unknown
plain_text
14 days ago
2.3 kB
2
Indexable
Never
import java.util.Scanner;

public class Solution {
	public static float[][] Time = new float[101][101];
	public static float[][] matrix = new float[101][101];
	public static int N = 0;
	public static int E = 0;
	public static int K = 0;
	public static int T = 0;

	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		for (int tc = 1; tc <= 10; tc++) {
			N = sc.nextInt();
			E = sc.nextInt();
			K = sc.nextInt();
			T = sc.nextInt();
			
			for (int i = 0; i <= N; i++) {
				for (int j = 0; j <= N; j++) {
					matrix[i][j] = 0f;
				}
			}
			
			for (int i = 0; i < E; i++) {
				int start = sc.nextInt();
				int end = sc.nextInt();
				matrix[start][end] = sc.nextFloat();
			}
			
//			for (int i = 0; i <= N; i++) {
//				for (int j = 0; j <= N; j++) {
//					System.out.print(matrix[i][j] + " ");
//				}
//				System.out.println();
//			}
//			System.out.println();
			
			for (int i = 1; i <= N; i++) {
				for (int j = 0; j <= T/10; j++) {
					Time[i][j] = 0f;
				}
			}
			Time[1][0] = 1f;
			
//			for (int i = 1; i <= N; i++) {
//				for (int j = 0; j <= T/10; j++) {
//					System.out.print(Time[i][j] + " ");
//				}
//				System.out.println();
//			}
//			System.out.println();
			
			for (int t = 1; t <= T/10; t++) {
				for (int i = 1; i <= N; i++) {
					if (Time[i][t - 1] != 0) {
						for (int j = 1; j <= N; j++) {
							if (matrix[i][j] != 0) {
								Time[j][t] += Time[i][t - 1] * matrix[i][j];
							}
						}
					}
				}
			}
			
//			for (int i = 1; i <= N; i++) {
//				for (int j = 0; j <= T/10; j++) {
//					System.out.print(Time[i][j] + " ");
//				}
//				System.out.println();
//			}
			
			int timeJ = T/10;
			int timeK = (T - K)/10;
			float maxJ = 0f;
			float maxK = 0f;
			int indexJ = 0;
			int indexK = 0;
			for (int i = 1; i <= N; i++) {
				if (maxJ < Time[i][timeJ]) {
					maxJ = Time[i][timeJ];
					indexJ = i;
				}
				if (maxK < Time[i][timeK]) {
					maxK = Time[i][timeK];
					indexK = i;
				}
			}
			System.out.print("#" + tc + " " + indexJ + " ");
			System.out.printf("%.6f ", maxJ);
			System.out.print(indexK + " ");
			System.out.printf("%.6f ", maxK);
			System.out.println();
		}
	}
}
Leave a Comment