2863 2023. 01. 30 23:46:50 bencewok Videójáték golang Hibás válasz 0/100 128ms 56160 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

		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 27ms 30004 KiB
2 Hibás válasz 26ms 30212 KiB
subtask2 0/10
3 Elfogadva 24ms 30860 KiB
4 Elfogadva 23ms 30860 KiB
5 Elfogadva 21ms 31472 KiB
6 Elfogadva 21ms 31804 KiB
7 Hibás válasz 25ms 32084 KiB
8 Hibás válasz 26ms 32672 KiB
9 Elfogadva 24ms 32600 KiB
10 Hibás válasz 26ms 32560 KiB
11 Hibás válasz 25ms 32480 KiB
subtask3 0/20
12 Hibás válasz 24ms 33068 KiB
13 Hibás válasz 25ms 33256 KiB
14 Hibás válasz 25ms 33156 KiB
15 Hibás válasz 23ms 32956 KiB
16 Hibás válasz 21ms 33044 KiB
17 Futási hiba 122ms 54908 KiB
18 Futási hiba 122ms 54920 KiB
19 Futási hiba 122ms 55168 KiB
20 Futási hiba 128ms 55812 KiB
21 Futási hiba 128ms 55988 KiB
22 Futási hiba 125ms 55764 KiB
subtask4 0/30
23 Futási hiba 122ms 56092 KiB
24 Futási hiba 122ms 56024 KiB
25 Futási hiba 122ms 55656 KiB
26 Futási hiba 123ms 55820 KiB
27 Futási hiba 122ms 54784 KiB
28 Futási hiba 122ms 55140 KiB
29 Futási hiba 122ms 55220 KiB
30 Futási hiba 122ms 55684 KiB
31 Futási hiba 128ms 55660 KiB
subtask5 0/40
32 Futási hiba 125ms 55928 KiB
33 Futási hiba 128ms 56160 KiB
34 Futási hiba 125ms 56064 KiB
35 Futási hiba 122ms 55764 KiB
36 Futási hiba 123ms 55788 KiB
37 Futási hiba 123ms 55900 KiB
38 Futási hiba 122ms 55736 KiB
39 Futási hiba 128ms 56072 KiB
40 Futási hiba 125ms 55952 KiB
41 Futási hiba 123ms 55936 KiB