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;
}