28642023-01-30 23:47:49bencewokVideójátékgolangHibás válasz 0/100129ms56172 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++ {
		//fmt.Println(i, "1")
		if max < yBreaks[i] {
			max = yBreaks[i]
		}
	}

	for i := 1; i < len(aBreaks); i++ {
		//fmt.Println(i, "2")
		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
		}

		//fmt.Println(q, u, "3")

		charta[aBreaks[q]-u] = 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
		}

		//fmt.Println(q, u, "4")

		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++ {
		//fmt.Println(i, index, "5")

		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++ {
		//fmt.Println(i, "6")

		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
1Hibás válasz28ms30268 KiB
2Hibás válasz25ms30844 KiB
subtask20/10
3Elfogadva26ms30740 KiB
4Elfogadva26ms30956 KiB
5Elfogadva27ms31396 KiB
6Elfogadva25ms31420 KiB
7Hibás válasz26ms31144 KiB
8Hibás válasz24ms31612 KiB
9Elfogadva24ms31744 KiB
10Hibás válasz27ms31804 KiB
11Hibás válasz25ms32540 KiB
subtask30/20
12Hibás válasz27ms32516 KiB
13Hibás válasz26ms32136 KiB
14Hibás válasz26ms32556 KiB
15Hibás válasz27ms32584 KiB
16Hibás válasz24ms33072 KiB
17Futási hiba123ms55304 KiB
18Futási hiba125ms55344 KiB
19Futási hiba123ms54772 KiB
20Futási hiba123ms54548 KiB
21Futási hiba129ms54928 KiB
22Futási hiba129ms54984 KiB
subtask40/30
23Futási hiba129ms55076 KiB
24Futási hiba128ms55276 KiB
25Futási hiba126ms55376 KiB
26Futási hiba129ms55236 KiB
27Futási hiba128ms55328 KiB
28Futási hiba128ms55060 KiB
29Futási hiba125ms54396 KiB
30Futási hiba129ms55440 KiB
31Futási hiba123ms55016 KiB
subtask50/40
32Futási hiba122ms55016 KiB
33Futási hiba122ms55524 KiB
34Futási hiba128ms56028 KiB
35Futási hiba125ms56056 KiB
36Futási hiba123ms55768 KiB
37Futási hiba123ms56172 KiB
38Futási hiba123ms55656 KiB
39Futási hiba123ms55652 KiB
40Futási hiba128ms55808 KiB
41Futási hiba128ms55796 KiB