結果

問題 No.1935 Water Simulation
ユーザー suzushi1isuzushi1i
提出日時 2022-05-13 22:31:02
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 826 bytes
コンパイル時間 648 ms
コンパイル使用メモリ 65,892 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-22 04:35:40
合計ジャッジ時間 1,434 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 2 ms
6,944 KB
testcase_02 AC 2 ms
6,944 KB
testcase_03 AC 2 ms
6,940 KB
testcase_04 AC 2 ms
6,940 KB
testcase_05 AC 2 ms
6,940 KB
testcase_06 AC 2 ms
6,940 KB
testcase_07 AC 2 ms
6,944 KB
testcase_08 AC 2 ms
6,940 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 2 ms
6,944 KB
testcase_11 AC 2 ms
6,944 KB
testcase_12 AC 2 ms
6,940 KB
testcase_13 AC 2 ms
6,944 KB
testcase_14 AC 2 ms
6,940 KB
testcase_15 AC 2 ms
6,940 KB
testcase_16 AC 2 ms
6,944 KB
testcase_17 AC 1 ms
6,944 KB
testcase_18 AC 2 ms
6,944 KB
testcase_19 AC 2 ms
6,944 KB
testcase_20 AC 2 ms
6,944 KB
testcase_21 AC 2 ms
6,944 KB
testcase_22 AC 2 ms
6,940 KB
testcase_23 AC 2 ms
6,940 KB
testcase_24 AC 2 ms
6,944 KB
testcase_25 AC 2 ms
6,940 KB
testcase_26 AC 2 ms
6,940 KB
testcase_27 AC 2 ms
6,940 KB
testcase_28 AC 2 ms
6,940 KB
testcase_29 AC 2 ms
6,940 KB
testcase_30 AC 2 ms
6,940 KB
testcase_31 AC 2 ms
6,940 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<iostream>
using namespace std;

int main()
{
	int v[5]; cin >> v[1] >> v[2] >> v[3] >> v[4];
	long long N; cin >> N;
	int a[5] = { 0 }; a[1] = v[1];
	auto pour = [&](int x, int y) {
		if (a[x] < v[y] - a[y])a[y] += a[x], a[x] = 0;
		else a[x] -= v[y] - a[y], a[y] = v[y];
	};

	int s[5] = { 0 };
	int i;
	for (i = 0; i < N; i++)
	{
		if (i % 4 == 0)
		{
			if (s[1] == a[1] && s[2] == a[2] && s[3] == a[3] && s[4] == a[4])break;
			s[1] = a[1], s[2] = a[2], s[3] = a[3], s[4] = a[4];
		}
		int x = i % 4 + 1, y = (i + 1) % 4 + 1;
		pour(x, y);
		//cout << i + 1 << ' ' << a[1] << ' ' << a[2] << ' ' << a[3] << ' ' << a[4] << endl;
	}

	for (int j = 0; j < (N - i) % 4; j++)
	{
		int x = j % 4 + 1, y = (j + 1) % 4 + 1;
		pour(x, y);
	}

	cout << a[1] << ' ' << a[2] << ' ' << a[3] << ' ' << a[4] << endl;
	return 0;
}
0