2864 2023. 01. 30 23:47:49 bencewok Videójáték golang Hibás válasz 0/100 129ms 56172 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 Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Hibás válasz 28ms 30268 KiB
2 Hibás válasz 25ms 30844 KiB
subtask2 0/10
3 Elfogadva 26ms 30740 KiB
4 Elfogadva 26ms 30956 KiB
5 Elfogadva 27ms 31396 KiB
6 Elfogadva 25ms 31420 KiB
7 Hibás válasz 26ms 31144 KiB
8 Hibás válasz 24ms 31612 KiB
9 Elfogadva 24ms 31744 KiB
10 Hibás válasz 27ms 31804 KiB
11 Hibás válasz 25ms 32540 KiB
subtask3 0/20
12 Hibás válasz 27ms 32516 KiB
13 Hibás válasz 26ms 32136 KiB
14 Hibás válasz 26ms 32556 KiB
15 Hibás válasz 27ms 32584 KiB
16 Hibás válasz 24ms 33072 KiB
17 Futási hiba 123ms 55304 KiB
18 Futási hiba 125ms 55344 KiB
19 Futási hiba 123ms 54772 KiB
20 Futási hiba 123ms 54548 KiB
21 Futási hiba 129ms 54928 KiB
22 Futási hiba 129ms 54984 KiB
subtask4 0/30
23 Futási hiba 129ms 55076 KiB
24 Futási hiba 128ms 55276 KiB
25 Futási hiba 126ms 55376 KiB
26 Futási hiba 129ms 55236 KiB
27 Futási hiba 128ms 55328 KiB
28 Futási hiba 128ms 55060 KiB
29 Futási hiba 125ms 54396 KiB
30 Futási hiba 129ms 55440 KiB
31 Futási hiba 123ms 55016 KiB
subtask5 0/40
32 Futási hiba 122ms 55016 KiB
33 Futási hiba 122ms 55524 KiB
34 Futási hiba 128ms 56028 KiB
35 Futási hiba 125ms 56056 KiB
36 Futási hiba 123ms 55768 KiB
37 Futási hiba 123ms 56172 KiB
38 Futási hiba 123ms 55656 KiB
39 Futási hiba 123ms 55652 KiB
40 Futási hiba 128ms 55808 KiB
41 Futási hiba 128ms 55796 KiB