fork download
  1. package main
  2.  
  3. import (
  4. "bufio"
  5. "fmt"
  6. "os"
  7. "strconv"
  8. //"math"
  9. //"strconv"
  10. "strings"
  11. )
  12.  
  13. func isSorted(a []int, n int) bool {
  14. for i := 1; i < n; i++ {
  15. if a[i] < a[i-1] {
  16. return false
  17. }
  18. }
  19. return true
  20. }
  21.  
  22. func main() {
  23. reader := bufio.NewReader(os.Stdin)
  24.  
  25. var t int
  26. fmt.Scanln(&t)
  27.  
  28. for i := 0; i < t; i++ {
  29. var n int
  30. //fmt.Scanln(&n)
  31. m, _ := reader.ReadString('\n')
  32. m = strings.TrimSpace(m)
  33. mm := strings.Split(m," ")
  34. n , _ = strconv.Atoi(mm[0])
  35.  
  36. s, _ := reader.ReadString('\n')
  37. s = strings.TrimSpace(s)
  38. ss := strings.Split(s," ")
  39. a := make([]int, n)
  40. for i := 0; i < n; i++ {
  41. a[i], _ = strconv.Atoi(ss[i])
  42. }
  43.  
  44.  
  45. if isSorted(a,n) {
  46. fmt.Println("Yes")
  47. continue
  48. }
  49.  
  50. b := false
  51.  
  52. for i := 0; i < n; i++ {
  53. for j := i+1; j < n; j++ {
  54. for k := j+1; k < n; k++ {
  55. if a[i] > a[j] || a[j] > a[k] {
  56. if a[i] > a[k] {
  57. a[i] += a[j]
  58. }else{
  59. a[j], a[k] = a[k], a[j]
  60. }
  61. }
  62. if isSorted(a,n) {
  63. b = true
  64. break
  65. }
  66. }
  67. if b { break }
  68. }
  69. if b { break }
  70. }
  71. if b {
  72. fmt.Println("Yes")
  73. } else {
  74. fmt.Println("No")
  75. }
  76. }
  77. }
  78.  
Success #stdin #stdout 0s 5224KB
stdin
7
3
1 2 3
3
1 3 2
7
5 3 4 7 6 2 1
7
7 6 5 4 3 2 1
5
2 1 4 5 3
5
2 1 3 4 5
7
1 2 6 7 4 3 5
stdout
Yes
Yes
No
No
No
No
Yes