题目名称 227. [POI 1997] 阿里巴巴
输入输出 ali.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 6
题目来源 GravatarBYVoid 于2008-11-28加入
开放分组 全部用户
提交状态
分类标签
搜索法
分享题解
通过:19, 提交:59, 通过率:32.2%
GravatarMakazeu 100 0.007 s 0.39 MiB C++
GravatarHouJikan 100 0.021 s 0.31 MiB C++
GravatarZhouZn1 100 0.024 s 16.35 MiB Pascal
Gravatar任杰 100 0.025 s 1.27 MiB C++
Gravatarskyfly 100 0.025 s 16.47 MiB C++
Gravatar王瑞祥K 100 0.026 s 1.19 MiB Pascal
GravatarBYVoid 100 0.027 s 1.21 MiB C++
Gravatarkaaala 100 0.038 s 16.48 MiB C++
Gravatarlingyixiaoyao 100 0.060 s 13.25 MiB C++
Gravatarbing 100 0.080 s 3.40 MiB Pascal
本题关联比赛
20091112练习
关于 阿里巴巴 的近10条评论(全部评论)
居然没有
0 0 1 0 0 2这种贸易QAQ
数据淼
GravatarHouJikan
2014-09-22 08:59 3楼
你怎么做的??
Gravatartony_don
2013-05-18 18:31 2楼
我Fuck!!哪错了?
GravatarMakazeu
2012-01-18 10:49 1楼

227. [POI 1997] 阿里巴巴

★☆   输入文件:ali.in   输出文件:ali.out   简单对比
时间限制:1 s   内存限制:128 MiB

想要“芝麻开门”,必须拥有一定数量的钱币,其中包括至少z枚金币,s枚银币和m枚铜币。 最初,阿里巴巴拥有三种钱币若干枚。他可以按照一定规则和芝麻之门的守护者进行交易。 每一种规则用以下形式表示:

z1, s1, m1 -> z2, s2, m2 (zi, si, mis属于集合{0,1,2,3,4})。

这样一种规则表示阿里巴巴可以将z1枚金币, s1枚银币, m1枚铜币换成z2枚金币, s2枚银币, m2枚铜币。 一次交易而得的钱币可以继续参加下一次的交易。

任务

从文件中读入几组数据;对于每一组数据:

  • 阿里巴巴最初拥有的金银铜三种钱币数目
  • “芝麻开门”所需的金银铜三种钱币数目
  • 所有交易规则

对每一组数据,判断是否存在有限次的交易,使阿里巴巴能开启芝麻之门。如果是,则将最少交易次数输出,否则在输出NIE(波兰文NO)

把结果写进文件中

输入格式 文件的第一行有一个整数d<=10,表示数据的组数。

接下来是d组数据,每组占若干行。

第一行是三个数zp, sp, mp ,属于集合{0,1,2,3,4}。表示阿里巴巴最初拥有的金银铜数目。

第二行是三个数z, s, m , 属于集合{0,1,2,3,4}。表示芝麻开门所需的金银铜数目。

第三行是规则总数r,1<=r<=10。

以下r行每行有六个数z1, s1, m1, z2, s2, m2 ,属于集合{0,1,2,3,4}。表示一种简单的交易z1, s1, m1 -> z2, s2, m2。

数字之间由若干个空格隔开。

输出格式

文件的第i行为第i组数据的答案:

一个非负整数——阿里巴巴要开启芝麻之门所需的最少交易次数,或者

单词NIE(波兰文NO)

样例输入

2
2 2 2
3 3 3
3
0 1 1 2 0 0
1 0 1 0 2 0
1 1 0 0 0 2
1 1 1
2 2 2
4
1 0 0 0 1 0
0 1 0 0 0 1
0 0 1 1 0 0
2 0 0 0 2 2

样例输出

NIE
9