2867 2023. 01. 31 10:44:13 mraron Videójáték golang Futási hiba 0/100 722ms 538528 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 Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 25ms 29964 KiB
2 Futási hiba 211ms 538528 KiB
subtask2 0/10
3 Futási hiba 216ms 538080 KiB
4 Futási hiba 261ms 537396 KiB
5 Futási hiba 263ms 537508 KiB
6 Futási hiba 129ms 54084 KiB
7 Futási hiba 125ms 53916 KiB
8 Elfogadva 611ms 259532 KiB
9 Elfogadva 27ms 32388 KiB
10 Futási hiba 722ms 536616 KiB
11 Futási hiba 250ms 536640 KiB
subtask3 0/20
12 Futási hiba 123ms 54664 KiB
13 Futási hiba 259ms 72008 KiB
14 Futási hiba 250ms 536180 KiB
15 Elfogadva 27ms 33216 KiB
16 Elfogadva 25ms 33864 KiB
17 Futási hiba 250ms 535712 KiB
18 Futási hiba 202ms 535496 KiB
19 Futási hiba 250ms 535480 KiB
20 Hibás válasz 28ms 34936 KiB
21 Hibás válasz 26ms 35108 KiB
22 Hibás válasz 23ms 34648 KiB
subtask4 0/30
23 Futási hiba 149ms 64920 KiB
24 Elfogadva 107ms 48960 KiB
25 Futási hiba 372ms 74308 KiB
26 Futási hiba 305ms 81860 KiB
27 Futási hiba 298ms 76212 KiB
28 Futási hiba 194ms 67884 KiB
29 Hibás válasz 41ms 43832 KiB
30 Hibás válasz 41ms 43704 KiB
31 Hibás válasz 32ms 38220 KiB
subtask5 0/40
32 Hibás válasz 78ms 75156 KiB
33 Hibás válasz 665ms 359508 KiB
34 Futási hiba 621ms 534708 KiB
35 Futási hiba 361ms 534624 KiB
36 Futási hiba 428ms 534720 KiB
37 Futási hiba 381ms 534672 KiB
38 Hibás válasz 187ms 95552 KiB
39 Hibás válasz 224ms 107300 KiB
40 Hibás válasz 90ms 74324 KiB
41 Hibás válasz 112ms 83428 KiB