Submission #728077

#TimeUsernameProblemLanguageResultExecution timeMemory
728077jnjwnwnwCarnival (CEOI14_carnival)Cpython 3
20 / 100
265 ms3712 KiB
import random test_check_repeats_save = {} def test_check_repeats(a, b): if a > b: a, b = b, a if a in test_check_repeats_save and b in test_check_repeats_save[a]: return test_check_repeats_save[a][b] result = test([a, b]) == 1 if a in test_check_repeats_save: test_check_repeats_save[a][b] = result else: test_check_repeats_save[a] = {b:result} return result def getAnItem(s): for thing in s: return thing def test(lst): return int(input(str(len(lst)) + " " + " ".join([str(i+1) for i in lst]) + "\n")) def div_and_conquer(l,u): if l == u - 1: return [{l}] mid = (l + u) // 2 rl = div_and_conquer(l, mid) rr = div_and_conquer(mid, u) used = set() for val_in in rr: flag = True for key_out, val_out in enumerate(rl): if key_out not in used and test_check_repeats(getAnItem(val_in), getAnItem(val_out)): val_out.update(val_out.union(val_in)) used.add(key_out) flag = False break if flag: rl.append(val_in) return rl def iterative(n): dat = [] for i in range(n): flag = True for val in dat: if test_check_repeats(i, getAnItem(val)): val.add(i) flag = False break if flag: dat.append({i}) return dat def main(): n = int(input()) c = int(input(str(n) + " " + " ".join([str(i+1) for i in range(n)]) + "\n")) div_and_conquer(0, n) res = iterative(n) toPrint = ["0"]*(n+1) for i, s in enumerate(res): for j in s: toPrint[j+1] = str(i+1) print(" ".join(toPrint)) main()
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...