Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func main() {
- arrayLength := ReadInt32()
- array := make([]int, arrayLength)
- for numberIndex := 0; numberIndex < arrayLength; numberIndex++ {
- array[numberIndex] = ReadInt32()
- }
- indexesDynamic := ReadString()
- var maxElement, minElement int
- maxAndMinAreSetted := false
- nextAfterPreviousNonDynamicIndex := 0
- result := true
- for index := 0; index < len(indexesDynamic); index++ {
- if !maxAndMinAreSetted || maxElement < array[index] {
- maxElement = array[index]
- }
- if !maxAndMinAreSetted || minElement > array[index] {
- minElement = array[index]
- }
- maxAndMinAreSetted = true
- if indexesDynamic[index] == '0' {
- if minElement != nextAfterPreviousNonDynamicIndex+1 || maxElement != index+1 {
- result = false
- break
- }
- nextAfterPreviousNonDynamicIndex = index + 1
- maxAndMinAreSetted = false
- }
- }
- var answer string
- if result {
- answer = "YES"
- } else {
- answer = "NO"
- }
- writer.WriteString(answer + "\n")
- }
Advertisement
Add Comment
Please, Sign In to add comment