zoj 1092||poj2240(bellman_f…
来源:互联网 发布:mac office 账号密码 编辑:程序博客网 时间:2024/05/17 09:11
Arbitrage
Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 12086Accepted: 5075
Description
Arbitrage is the use of discrepancies in currencyexchange rates to transform one unit of a currency into more thanone unit of the same currency. For example, suppose that 1 USDollar buys 0.5 British pound, 1 British pound buys 10.0 Frenchfrancs, and 1 French franc buys 0.21 US dollar. Then, by convertingcurrencies, a clever trader can start with 1 US dollar and buy 0.5* 10.0 * 0.21 = 1.05 US dollars, making a profit of 5percent.
Your job is to write a program that takes a list of currencyexchange rates as input and then determines whether arbitrage ispossible or not.
Your job is to write a program that takes a list of currencyexchange rates as input and then determines whether arbitrage ispossible or not.
Input
The input will contain one or more test cases. Omthe first line of each test case there is an integer n(1<=n<=30), representing the number of different currencies.The next n lines each contain the name of one currency. Within aname no spaces will appear. The next line contains one integer m,representing the length of the table to follow. The last m lineseach contain the name ci of a source currency, a real number rijwhich represents the exchange rate from ci to cj and a name cj ofthe destination currency. Exchanges which do not appear in thetable are impossible.
Test cases are separated from each other by a blank line. Input isterminated by a value of zero (0) for n.
Test cases are separated from each other by a blank line. Input isterminated by a value of zero (0) for n.
Output
For each test case, print one line telling whetherarbitrage is possible or not in the format "Case case: Yes"respectively "Case case: No".
Sample Input
3USDollarBritishPoundFrenchFranc3USDollar 0.5 BritishPoundBritishPound 10.0 FrenchFrancFrenchFranc 0.21 USDollar3USDollarBritishPoundFrenchFranc6USDollar 0.5 BritishPoundUSDollar 4.9 FrenchFrancBritishPound 10.0 FrenchFrancBritishPound 1.99 USDollarFrenchFranc 0.09 BritishPoundFrenchFranc 0.19 USDollar0
Sample Output
Case 1: YesCase 2: No
Source
Ulm Local 1996
具体解法参看图论算法
// I'm theTopcoder
//C
#include
#include
#include
#include
#include
#include
//C++
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespacestd;
//*************************OUTPUT*************************
#ifdefWIN32
#define INT64"%I64d"
#define UINT64"%I64u"
#else
#define INT64"%lld"
#define UINT64"%llu"
#endif
//**************************CONSTANT***********************
#define INF0x3f3f3f3f
#define eps1e-8
#define PIacos(-1.)
#define PI2asin (1.);
typedef longlong LL;
//typedef__int64 LL; //codeforces
typedefunsigned int ui;
typedefunsigned long long ui64;
#define MPmake_pair
typedef vectorVI;
typedef pairPII;
#define pbpush_back
#define mpmake_pair
//***************************SENTENCE************************
#define CL(a,b)memset (a, b, sizeof (a))
#definesqr(a,b) sqrt ((double)(a)*(a) +(double)(b)*(b))
#definesqr3(a,b,c) sqrt((double)(a)*(a) + (double)(b)*(b) +(double)(c)*(c))
//****************************FUNCTION************************
template doubleDIS(T va, T vb) { return sqr(va.x - vb.x, va.y - vb.y);}
template inlineT INTEGER_LEN(T v) { int len = 1; while (v /= 10) ++len; returnlen; }
template inlineT square(T va, T vb) { return va * va + vb * vb;}
// aply for thememory of the stack
//#pragmacomment (linker,"/STACK:1024000000,1024000000")
//end
#define maxn50+10//顶点最大值
#define maxm1000+10//边数最大值
structexchange{
}ex[maxm];//汇率关系数组
intn,m;
charname[maxn][20];//货币名称
chara[maxn],b[maxn];
doublex;//存入的汇率
doublemaxdist[maxn];//源点i到其他每个顶点(包括本身)的最长路径长度
intflag;
intkase=0;
intreadcase(){
//printf("ex[i].ci=%d\n",ex[i].ci);;
//printf("ex[i].cj=%d\n",ex[j].cj);
//printf("ex[i].cij=%lf\n",ex[i].cij);
}
//bellman-ford算法:以顶点v0为源点,求它到每个顶点(包括它本事)的最大距离
voidbellman(int v0){
}
intmain(){
}
- zoj 1092||poj2240(bellman_f…
- poj2240
- poj2240
- poj2240
- POJ2240
- poj2240
- poj2240
- poj2240
- poj2240
- poj2240
- poj2240
- poj2240
- ZOJ 1060 (POJ 1094) Sorting It …
- ZOJ 1504(POJ 1244) Slots of Fun…
- ZZULI_SummerPractice(5) ZOJ 185…
- ZZULI_SummerPractice(5) ZOJ 194…
- ZZULI_SUMMER_PRACTICE(8) ZOJ 23…
- ZOJ 1048 Gridland(水水更健康!*…
- uva 10047(BFS)
- uva 10054 eular()回路
- 嗨
- zoj 2750 dijkstra()
- 基本装系统的方法
- zoj 1092||poj2240(bellman_f…
- 内存索引的实际应用中选择T树还是B树
- zoj2008 || poj1511&nbs…
- SSIS遍历xls文件读取和写入数据
- poj 3268 spfa()最短路径
- poj 3259spfa()判断是否存在负环
- 博客搬家啦
- 话说我打算一天学完object c语法,系列1--------来自书Objective-c程序设计
- .pnt .pcf .dmt .mat .sym 等格式的文件如何导入Windchill