Submission

Status:

[PP-SSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: tnka4_

Problemset: forex

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-13 18:57:42

#include <iostream>
#include <vector>
#include <queue>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<vector<double>> adjMat(n, vector<double>(n));
    for (int i=0; i<n; i++) {
        for (int j=0; j<n; j++) {
            cin >> adjMat[i][j];
        }
    }
    for (int sc=0; sc<n; sc++) {
        queue<pair<int, pair<double, int>>> q; // currency, val, depth
        q.push({sc, {1.00, 0}});
        while (!q.empty()) {
            auto [cc, ci] = q.front(); q.pop();
            double cv = ci.first;
            double cd = ci.second;
            if (cd > n) continue;
            for (int nc=0; nc<n; nc++) {
                if (cc == nc) continue;
                double nv = cv * adjMat[cc][nc];
                if (nc == sc && nv > 1.01) {
                    cout << sc + 1 << " " << cd + 1;
                    return 0;
                }
                q.push({nc, {cv * adjMat[cc][nc], cd + 1}});
            }
        }
    }
    cout << -1;
}