2862 2023. 01. 30 23:41:14 bencewok Videójáték golang Hibás válasz 0/100 129ms 56484 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 25ms 30036 KiB
2 Hibás válasz 27ms 30716 KiB
subtask2 0/10
3 Elfogadva 24ms 30816 KiB
4 Elfogadva 27ms 31148 KiB
5 Elfogadva 27ms 31644 KiB
6 Elfogadva 26ms 31664 KiB
7 Hibás válasz 25ms 31736 KiB
8 Hibás válasz 23ms 31964 KiB
9 Elfogadva 26ms 32272 KiB
10 Hibás válasz 25ms 32652 KiB
11 Hibás válasz 25ms 32592 KiB
subtask3 0/20
12 Hibás válasz 24ms 33160 KiB
13 Hibás válasz 25ms 33092 KiB
14 Hibás válasz 24ms 33140 KiB
15 Hibás válasz 21ms 33092 KiB
16 Hibás válasz 25ms 33080 KiB
17 Futási hiba 128ms 55560 KiB
18 Futási hiba 125ms 55608 KiB
19 Futási hiba 128ms 55684 KiB
20 Futási hiba 125ms 55316 KiB
21 Futási hiba 128ms 55356 KiB
22 Futási hiba 125ms 55604 KiB
subtask4 0/30
23 Futási hiba 128ms 55016 KiB
24 Futási hiba 123ms 55404 KiB
25 Futási hiba 128ms 55940 KiB
26 Futási hiba 128ms 55636 KiB
27 Futási hiba 128ms 55612 KiB
28 Futási hiba 129ms 55844 KiB
29 Futási hiba 125ms 55440 KiB
30 Futási hiba 123ms 55840 KiB
31 Futási hiba 123ms 55496 KiB
subtask5 0/40
32 Futási hiba 128ms 55828 KiB
33 Futási hiba 129ms 56068 KiB
34 Futási hiba 125ms 56144 KiB
35 Futási hiba 123ms 55928 KiB
36 Futási hiba 128ms 56460 KiB
37 Futási hiba 128ms 56484 KiB
38 Futási hiba 128ms 55684 KiB
39 Futási hiba 125ms 56096 KiB
40 Futási hiba 123ms 56020 KiB
41 Futási hiba 128ms 56252 KiB