SRM478 DIV2 250 KiwiJuiceEasy

問題文のとおりにシミュレーション。
1 <= capacities[i],bottles[i] <= 1,000,000
で要素数が最大50だからインクリメント・デクリメントを繰り返しても余裕で間に合う。

#include <vector>
using namespace std;

class KiwiJuiceEasy {
	public:
	vector <int> thePouring(vector <int> capacities, vector <int> bottles, vector <int> fromId, vector <int> toId)
	{
		for(int k=0;k<fromId.size();++k) {
			int i=fromId[k];
			int j=toId[k];
			while (bottles[j]<capacities[j] && bottles[i]>0) {
				bottles[j]++;
				bottles[i]--;
			}
		}
		return bottles;
	}
};

チーター本の間違ってる気がするところ その2

p.78 最後の文 「ソートを利用すると、ソースコードは〜」とあるけどソートしてない。
ソートを利用すると例えば以下のようなものになるんじゃないだろうか。

#include <algorithm>
#include <vector>
using namespace std;

class Cryptography {
	public:
	long long encrypt(vector <int> numbers)
	{
		sort(numbers.begin(), numbers.end());
		numbers[0]++;
		long long res=1;
		for(int i=0;i<numbers.size();++i) res*=numbers[i];
		return res;
	}
};