Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: mantaggez

Problemset: forex

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-21 21:55:39

#include <bits/stdc++.h>

using namespace std;

const int nx = 35;

int n;
double c[nx][nx], dp[nx][nx][nx];

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            cin >> c[i][j];

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            dp[i][j][1] = c[i][j];

    for(int k=1;k<=n;k++) {
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=n;j++) {
                for(int mid=1;mid<=n;mid++) {
                    dp[i][j][k] = max(dp[i][j][k], dp[i][mid][k - 1] * c[mid][j]);
                }
            }
        }
    }
    
    for(int k=1;k<=n;k++) {
        for(int i=1;i<=n;i++) {
            if(dp[i][i][k] > 1.01) {
                cout << i << ' ' << k << '\n';
                return 0;
            }
        }
    }

    cout << -1 << '\n';

    return 0;
}