Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
1.1 kB
2
Indexable
Never
#include <iostream>
#include <stdio.h>
using namespace std;
int n, e, k, t;
float map[1001][1001];
float p[1001][1001];

int main() {
	freopen("input.txt", "r", stdin);
	for (int stt = 1; stt <= 10; stt++) {
	    cin >> n >> e >> k >> t;
		int x, y;
		double z;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				map[i][j] = 0;
			}
		}

		for (int i = 0; i < e; i++) {
			cin >> x >> y >> z;
			map[x][y] = z;
		}

		for(int i = 0; i < n; i ++) {
			for(int j = 0; j < t/10; j ++) {
				p[i][j] = 0;
			}
		}

		p[0][1]=1;
		int r=0;
		while(r<t/10){
			for(int j=1;j<=n;++j){
				if(p[r][j]!=0){
					for(int l=1;l<=n;++l)
						if(map[j][l]!=0)
							p[r+1][l]+=(map[j][l]*p[r][j]);
				}
			++r;
			}
		}
		int tr=t/10,tk=(t-k)/10,ju=0,jk=0;
		float maxj=0,maxk=0;
		for(int j=1;j<=n;++j)
			if(p[tr][j]>maxj){
				ju=j;
				maxj=p[tr][j];
			}
		for(int j=1;j<=n;++j)
			if(p[tk][j]>maxk){
				jk=j;
				maxk=p[tk][j];
			}
			
			printf("#%d %d %.6f %d %.6f\n",stt,ju,maxj,jk,maxk);
		
	}
		return 0;
}