main.go 509 B

12345678910111213141516171819202122
  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func main() {
  6. var C int
  7. fmt.Scan(&C)
  8. for cid := 0; cid < C; cid++ {
  9. var N, M, A int
  10. fmt.Scan(&N, &M, &A)
  11. if A > N*M { // Math is the key. We can prove that every A in [1, N*M] is possible.
  12. fmt.Printf("Case #%d: IMPOSSIBLE\n", cid+1)
  13. } else if k := A / M; k == N {
  14. fmt.Printf("Case #%d: 0 0 %d 0 0 %d\n", cid+1, N, M)
  15. } else {
  16. // a = (k+1, M), b = (k, 0), c = (0, c')
  17. fmt.Printf("Case #%d: %d %d %d %d %d %d\n", cid+1, k+1, M, k, 0, 0, A-k*M)
  18. }
  19. }
  20. }