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
*/