Submission

Status:

[PPPPTSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: qweqwe

Problemset: forex

Language: cpp

Time: 1.093 second

Submitted On: 2025-10-22 16:36:48

#include <bits/stdc++.h>
#define speed cin.tie(0)->sync_with_stdio(0)
#define ll long long
#define db long double
#define pii pair<int,int>
#define INF 1e9
using namespace std;

vector<vector<db>> moner(31,vector<db>(31));
vector<pii> sortt;
int n;

void dfs(int x,int st,int level,db m){
	if (x==st && level>1){
		//cout << st+1 << " " << level-1 << " " << m << "\n";
		if (m>=(db)1.01){
			sortt.push_back({level-1,st+1});
			//cout << st+1 << " " << level-1 << "\n";
		}
		return;
	}if (level>n) return;
	for (int i=0;i<n;i++){
		if (x!=i){
			db sum=m*moner[x][i];
			dfs(i,st,level+1,sum);
		}
	}
}

int main(){
	speed;
	cin >> n;
	for (int i=0;i<n;i++){
		for (int j=0;j<n;j++){
			cin >> moner[i][j];
		}
	}
	for (int i=0;i<n;i++){
		dfs(i,i,1,1);
	}
	if (sortt.size()==0){
		cout << -1;return 0;
	}
	sort(sortt.begin(),sortt.end());
	cout << sortt[0].second << " " << sortt[0].first;
	/*
	for (int i=0;i<n;i++){
		for (int j=0;j<n;j++){
			db a=dis[i][j];
			cout << fixed << setprecision(2) << a << " ";
		}cout << "\n";
	}
	*/
	return 0;
}
/*
3
1.00 1.20 0.89
0.88 1.00 5.10
1.10 0.15 1.00
1 2
1 -> 2

2
1.00 2.00
0.45 1.00
-1

5
1.00 0.90 0.98 0.70 0.67
0.90 1.00 0.80 0.99 0.45
0.98 1.03 1.00 0.98 0.97
0.70 0.98 1.00 1.00 0.20
0.67 0.45 0.97 0.20 1.00
2 3
2 -> 4 -> 3
*/