#1494. 三维数组下标查询

三维数组下标查询

题目描述

给定一个大小为 n×m×hn \times m \times h 的三维数组 aa,其三个维度的下标分别从 00 开始,即第一维下标从 00 到 n−1n-1,第二维下标从 00 到 m−1m-1,第三维下标从 00 到 h−1h-1。

我们将从 00 到 n×m×h−1n \times m \times h - 1 的所有整数,按照优先遍历较高维度(即类似于多重循环中,最外层为第一维,中间为第二维,最内层为第三维)的顺序依次填入该三维数组中。具体来说,填入的顺序依次为:$a[0][0][0], a[0][0][1], \dots, a[0][0][h-1], a[0][1][0], \dots$ 以此类推,直至 a[n−1][m−1][h−1]a[n-1][m-1][h-1]。

现在给出 TT 次询问,每次询问给定一个目标数字 xx,请你求出数字 xx 在三维数组中对应的三个维度的下标。

输入格式

第一行包含一个正整数 TT —— 表示询问的次数。

接下来 TT 行,每行包含四个整数 n,m,h,xn, m, h, x —— 分别表示三维数组三个维度的大小,以及每次询问的目标数字。

输出格式

对于每次询问,输出一行三个整数 i,j,ki, j, k,分别表示数字 xx 在三维数组中对应的第一维、第二维和第三维下标。相邻整数之间用一个空格隔开。

样例输入 1

2
2 3 4 11
2 2 2 7

样例输出 1

0 2 3
1 1 1

说明

样例解释

  • 在第一个询问中,三维数组的大小为 2×3×42 \times 3 \times 4。 数字 0∼110 \sim 11 会填满第一维下标为 00 的所有位置。其中数字 1111 是该区域的最后一个数,对应第二维下标的最大值 22 和第三维下标的最大值 33。因此坐标为 0 2 3。
  • 在第二个询问中,三维数组大小为 2×2×22 \times 2 \times 2,共 88 个元素。数字 77 是最后一个填入的数,对应的坐标显然是最大下标 1 1 1。

数据范围

  • 对于所有测试点,保证 1≤T≤1041 \le T \le 10^4。
  • 对于每次询问,保证 1≤n,m,h≤1061 \le n, m, h \le 10^6。
  • 对于每次询问,保证 0≤x<n×m×h0 \le x < n \times m \times h。
  • 保证所有的输入数值均为整数。