PICNIC 오답 확인 요청드립니다.

  • yeoshim
    yeoshim

    PICNIC 문제를 go로 제출하였는데 계속 오답이 나옵니다.

    혹시 실패한 케이스를 확인할 수 있는 방법은 없는지요?

    확인 부탁드립니다.

    감사합니다.

    참고로 제출한 소스 첨부합니다.

    package main
    
    import (
        "fmt"
    )
    
    //  all case w/ dup => dic sorting
    func main() {
        var cases int
        fmt.Scanf( "%d\n", &cases )
    
        for cases > 0 {
            var stdNum int
            var pairNum int
            fmt.Scanf( "%d %d\n", &stdNum, &pairNum )
    //        fmt.Printf( "sn: %d pn: %d\n", stdNum, pairNum )
    
            var areFriends [10][10]bool
            var taken [10]bool
    
            //  init
            for i:=0; i<10; i++ {
                for j:=0; j<10; j++ {
                    areFriends[i][j] = false
                }
            }
            for i:=0; i<10; i++ {
                taken[i] = false
            }
    
            for i:=0; i<pairNum; i++    {
                var std1 int
                var std2 int
                fmt.Scanf( "%d", &std1 )
                fmt.Scanf( "%d", &std2 )
                areFriends[std1][std2] = true
                areFriends[std2][std1] = true
            }
    
            fmt.Printf( "%d\n", countPairs(taken, areFriends, stdNum) )
    
            cases--
        }
    }
    
    func countPairs( taken [10]bool, areFriends [10][10]bool, stdNum int )int   {
        var firstFree = -1
        for i:=0; i<stdNum; i++ {
            if !taken[i]    {
                firstFree = i
                break
            }
        }
        if firstFree == -1  { return 1 }
    
        var count = 0
        for i:=firstFree+1; i<stdNum; i++   {
            if !taken[i] && areFriends[firstFree][i]    {
                taken[i] = true
                taken[firstFree] = true
                count += countPairs( taken, areFriends, stdNum )
                taken[i] = false
                taken[firstFree] = false
            }
        }
    
        return count
    }
    

    8년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.