28672023-01-31 10:44:13mraronVideójátékgolangFutási hiba 0/100722ms538528 KiB
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func inputFunc() func() []int {
    scanner := bufio.NewScanner(os.Stdin)
    return func() []int {
        var input string
        var output []int
        
        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() {
    input := inputFunc()
    
	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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva25ms29964 KiB
2Futási hiba211ms538528 KiB
subtask20/10
3Futási hiba216ms538080 KiB
4Futási hiba261ms537396 KiB
5Futási hiba263ms537508 KiB
6Futási hiba129ms54084 KiB
7Futási hiba125ms53916 KiB
8Elfogadva611ms259532 KiB
9Elfogadva27ms32388 KiB
10Futási hiba722ms536616 KiB
11Futási hiba250ms536640 KiB
subtask30/20
12Futási hiba123ms54664 KiB
13Futási hiba259ms72008 KiB
14Futási hiba250ms536180 KiB
15Elfogadva27ms33216 KiB
16Elfogadva25ms33864 KiB
17Futási hiba250ms535712 KiB
18Futási hiba202ms535496 KiB
19Futási hiba250ms535480 KiB
20Hibás válasz28ms34936 KiB
21Hibás válasz26ms35108 KiB
22Hibás válasz23ms34648 KiB
subtask40/30
23Futási hiba149ms64920 KiB
24Elfogadva107ms48960 KiB
25Futási hiba372ms74308 KiB
26Futási hiba305ms81860 KiB
27Futási hiba298ms76212 KiB
28Futási hiba194ms67884 KiB
29Hibás válasz41ms43832 KiB
30Hibás válasz41ms43704 KiB
31Hibás válasz32ms38220 KiB
subtask50/40
32Hibás válasz78ms75156 KiB
33Hibás válasz665ms359508 KiB
34Futási hiba621ms534708 KiB
35Futási hiba361ms534624 KiB
36Futási hiba428ms534720 KiB
37Futási hiba381ms534672 KiB
38Hibás válasz187ms95552 KiB
39Hibás válasz224ms107300 KiB
40Hibás válasz90ms74324 KiB
41Hibás válasz112ms83428 KiB