Weird를 python으로 작성하였는데, RTE라는 결과를 받았습니다. egaoneko 제 컴퓨터 환경에서는 문제 없이 동작하여 올렸더니 RTE라는 결과를 받았습니다. 여러가지 변경해보고 테스트해보았지만 어디서 문제가 일어나는지 찾기가 힘드네요. import sys rl = lambda:sys.stdin.readline() C = int(rl()) input = list() for i in xrange(C): s = int(rl()) if s < 2 or s > 500000: print("wrong input") exit() input.append(s) def divisor(x): return [ i for i in xrange(1, x) if x%i==0] def weird(x): l = divisor(x) sum=0 for i in l: sum += i # check(l,x) if x > sum: return "not weird" elif not check(l, x): return "not weird" return "weird" def check(l, x): s = 2**len(l) ll = len(l) for i in xrange(1, s): b = i2b(i, ll) cl = list() for j in xrange(ll): if int(b[(ll-1)-j]) == 1: cl.append(l[j]) sum = 0 for j in cl: sum += j # print(i,b,sum) if sum == x: return False elif sum > x: return True return False def i2b(i, l): s='' while i > 0: s = str(i&1) + s i = i>>1 return s.zfill(l) for i in xrange(C): #weird(input[i]) print(weird(input[i])) 9년 전
1개의 댓글이 있습니다. JongMan 알고리즘을 설명해 주시지 않으면 답을 드리기 어렵습니다. 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
egaoneko
제 컴퓨터 환경에서는 문제 없이 동작하여 올렸더니 RTE라는 결과를 받았습니다.
여러가지 변경해보고 테스트해보았지만 어디서 문제가 일어나는지 찾기가 힘드네요.
9년 전