-
Arbitrage
- POJ - 2240
- Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency.
-
#include<iostream> #include<map> #include<vector> #include<cstring> using namespace std; map<string,int>y; string str,s; #define maxn 55 #define inf 0x3f3f3f3f double x,mmp[maxn][maxn]; int n,m,cnt; void floyd() { for(int k=1; k<=n; k++) for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) if(mmp[i][j]<mmp[i][k]*mmp[k][j]) mmp[i][j]=mmp[i][k]*mmp[k][j]; if(mmp[i][i]>1) { cout<<"Yes"<<endl; return ; } } cout<<"No"<<endl; return ; } int main() { while(cin>>n) { if(!n) break; ++cnt; y.clear(); for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) if(i==j) mmp[i][j]=1; else mmp[i][j]=0; for(int i=1; i<=n; i++) { cin>>str; y[str]=i; } cin>>m; while(m--) { cin>>str>>x>>s; mmp[y[str]][y[s]]=x; } cout<<"Case "<<cnt<<": "; floyd(); } return 0; }
Arbitrage- currency exchange-folyd正环
最新推荐文章于 2023-06-25 12:01:09 发布