2861 2023. 01. 30 23:27:19 bencewok Videójáték golang Hibás válasz 0/100 131ms 56452 KiB
package main
 
import (
    "bufio"
    "fmt"
    "os"
    "strconv"
    "strings"
)
 
func input() []int {
    var input string
    var output []int
 
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    input = scanner.Text()
 
    inputSplit := strings.Split(input, " ")
 
    for i := 0; i < len(inputSplit); i++ {
        charInt, _ := strconv.Atoi(inputSplit[i])
        output = append(output, charInt)
    }
 
    return output
}
 
func main() {
    var aBreaks, yBreaks []int
    var boretime, boretimeNow, aLenght, yLenght, output int
 
    boretime = input()[0]
 
    aLenght = input()[0]
 
    for i := 0; i < aLenght; i++ {
        ln := input()
        aBreaks = append(aBreaks, ln[0])
        aBreaks = append(aBreaks, ln[1])
    }
 
    yLenght = input()[0]
 
    for i := 0; i < yLenght; i++ {
        ln := input()
        yBreaks = append(yBreaks, ln[0])
        yBreaks = append(yBreaks, ln[1])
    }
 
 
    //chart creation
    var max int
 
    for i := 1; i < len(yBreaks); i++ {
        if max < yBreaks[i] {
            max = yBreaks[i]
        }
    }
 
    for i := 1; i < len(aBreaks); i++ {
        if max < aBreaks[i] {
            max = aBreaks[i]
        }
    }
    charta := make([]int, max)
    charty := make([]int, max)
 
    q, u := 1, 0
    for {
 
        if q > len(aBreaks) {
            break
        }
 
        charta[aBreaks[q]-u-1] = 1
 
        if aBreaks[q]-u == aBreaks[q-1] {
            u = 0
            q = q + 2
        } else {
            u++
        }
        //fmt.Println(charta)
    }
 
    q, u = 1, 0
    for {
        if q > len(yBreaks) {
            break
        }
 
        charty[yBreaks[q]-u-1] = 1
 
        if yBreaks[q]-u == yBreaks[q-1] {
            u = 0
            q = q + 2
        } else {
            u++
        }
        //fmt.Println(charty)
    }
 
    var index int
 
    //fmt.Println(charta)
    //fmt.Println(charty)
 
    for i := 0; i < len(charta); i++ {
        if boretime == boretimeNow {
            index = i
            for charta[index] != 0 {
                charta[index] = 0
                index++
            }
            boretimeNow = 0
        }
 
        if charta[i] == 1 && charta[i] != charty[i] {
            boretimeNow++
        }
 
    }
 
    for i := 0; i < len(charta); i++ {
        if charta[i] == 1 && charta[i] == charty[i] {
            output++
        }
    }
 
    //fmt.Println(charta)
    //fmt.Println(charty)
 
    fmt.Println(output)
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Hibás válasz 23ms 30028 KiB
2 Hibás válasz 21ms 30140 KiB
subtask2 0/10
3 Elfogadva 27ms 31144 KiB
4 Elfogadva 27ms 31336 KiB
5 Elfogadva 24ms 31360 KiB
6 Elfogadva 23ms 31348 KiB
7 Hibás válasz 27ms 31880 KiB
8 Hibás válasz 24ms 31864 KiB
9 Elfogadva 23ms 31604 KiB
10 Hibás válasz 21ms 31696 KiB
11 Hibás válasz 26ms 32036 KiB
subtask3 0/20
12 Hibás válasz 24ms 32188 KiB
13 Hibás válasz 21ms 32292 KiB
14 Hibás válasz 25ms 32604 KiB
15 Hibás válasz 24ms 32484 KiB
16 Hibás válasz 25ms 32680 KiB
17 Futási hiba 128ms 55772 KiB
18 Futási hiba 128ms 55096 KiB
19 Futási hiba 126ms 55036 KiB
20 Futási hiba 130ms 55512 KiB
21 Futási hiba 125ms 55700 KiB
22 Futási hiba 123ms 55728 KiB
subtask4 0/30
23 Futási hiba 123ms 55800 KiB
24 Futási hiba 125ms 55652 KiB
25 Futási hiba 123ms 55404 KiB
26 Futási hiba 130ms 55500 KiB
27 Futási hiba 130ms 56164 KiB
28 Futási hiba 126ms 55812 KiB
29 Futási hiba 125ms 55768 KiB
30 Futási hiba 129ms 55272 KiB
31 Futási hiba 129ms 55380 KiB
subtask5 0/40
32 Futási hiba 125ms 55876 KiB
33 Futási hiba 123ms 55460 KiB
34 Futási hiba 123ms 55900 KiB
35 Futási hiba 131ms 56128 KiB
36 Futási hiba 127ms 56152 KiB
37 Futási hiba 129ms 56172 KiB
38 Futási hiba 128ms 55872 KiB
39 Futási hiba 128ms 56344 KiB
40 Futási hiba 125ms 56376 KiB
41 Futási hiba 128ms 56452 KiB