@@ -0,0 +1,100 @@
Case #1: 1 0
Case #2: 1 0
Case #3: 1 1
Case #4: 0 0
Case #5: 500 499
Case #6: 0 0
Case #7: 1 0
Case #8: 0 0
Case #9: 0 0
Case #10: 3 3
Case #11: 0 0
Case #12: 1 0
Case #13: 7 6
Case #14: 1 0
Case #15: 1 0
Case #16: 0 0
Case #17: 0 0
Case #18: 1 1
Case #19: 0 0
Case #20: 1 0
Case #21: 1 0
Case #22: 0 0
Case #23: 3 2
Case #24: 1 1
Case #25: 0 0
Case #26: 0 0
Case #27: 1 0
Case #28: 0 0
Case #29: 0 0
Case #30: 1 0
Case #31: 249 249
Case #32: 0 0
Case #33: 1 1
Case #34: 1 0
Case #35: 0 0
Case #36: 0 0
Case #37: 0 0
Case #38: 1 0
Case #39: 1 1
Case #40: 0 0
Case #41: 0 0
Case #42: 0 0
Case #43: 1 0
Case #44: 7 6
Case #45: 1 1
Case #46: 250 249
Case #47: 0 0
Case #48: 1 1
Case #49: 0 0
Case #50: 0 0
Case #51: 0 0
Case #52: 0 0
Case #53: 3 2
Case #54: 499 499
Case #55: 3 2
Case #56: 0 0
Case #57: 0 0
Case #58: 0 0
Case #59: 1 0
Case #60: 250 249
Case #61: 1 0
Case #62: 0 0
Case #63: 0 0
Case #64: 0 0
Case #65: 0 0
Case #66: 0 0
Case #67: 125 124
Case #68: 1 1
Case #69: 0 0
Case #70: 0 0
Case #71: 0 0
Case #72: 0 0
Case #73: 0 0
Case #74: 3 3
Case #75: 1 0
Case #76: 1 1
Case #77: 0 0
Case #78: 3 3
Case #79: 0 0
Case #80: 2 1
Case #81: 0 0
Case #82: 0 0
Case #83: 0 0
Case #84: 1 0
Case #85: 2 2
Case #86: 1 0
Case #87: 3 3
Case #88: 0 0
Case #89: 1 1
Case #90: 0 0
Case #91: 1 0
Case #92: 1 1
Case #93: 0 0
Case #94: 0 0
Case #95: 0 0
Case #96: 3 2
Case #97: 0 0
Case #98: 0 0
Case #99: 0 0
Case #100: 0 0
@@ -0,0 +1,101 @@
100
4 2
5 2
6 2
1000 1000
1000 1
949792 714292
1000000 499998
891476 818518
500000 262143
500000 237856
264744 234245
500000 1
1000000 1000000
854838 706592
999999 505763
1000000 475713
494959 471175
477115 475297
288907 271880
999999 128
1000000 500000
3 2
999999 1
270333 254796
1000000 475712
999999 127
633911 497124
500000 131072
3 1
1000000 128
1000000 2
973446 751500
984463 918347
317717 256230
1000000 499999
628213 616543
1000000 524288
586142 492481
999999 499999
1000000 1
999999 999999
744628 638050
999999 262144
942895 867083
448626 366865
500000 237857
1000000 999999
999999 499997
999999 2
1000000 127
1000000 432558
999999 524288
500000 499999
314584 264447
999999 262143
999999 475711
1000000 523819
500000 243204
999999 499998
500000 2
708220 598371
558585 420639
936500 776178
986127 984765
486919 432443
4 1
500000 127
2 1
500000 249999
500000 131071
780505 685564
500000 500000
938305 893779
500000 128
999999 419746
500000 210868
999999 475712
5 1
999999 524287
711948 612854
500000 250000
1000000 262144
999999 999998
900230 711441
697315 554890
500000 262144
550404 430008
1000000 262143
470996 392214
1000000 524287
962880 746640
2 2
500000 249998
637871 526820
632066 599601
1 1
958179 733144
413549 393771
730378 704011
910033 850693
@@ -0,0 +1,100 @@
Case #1: 1 0
Case #2: 1 0
Case #3: 1 1
Case #4: 0 0
Case #5: 500 499
Case #6: 0 0
Case #7: 1 0
Case #8: 0 0
Case #9: 1 0
Case #10: 1 1
Case #11: 0 0
Case #12: 250000 249999
Case #13: 0 0
Case #14: 0 0
Case #15: 1 0
Case #16: 1 0
Case #17: 0 0
Case #18: 0 0
Case #19: 0 0
Case #20: 3906 3905
Case #21: 1 0
Case #22: 0 0
Case #23: 499999 499999
Case #24: 0 0
Case #25: 1 1
Case #26: 7812 7811
Case #27: 0 0
Case #28: 1 1
Case #29: 1 1
Case #30: 3906 3905
Case #31: 250000 249999
Case #32: 0 0
Case #33: 0 0
Case #34: 0 0
Case #35: 1 0
Case #36: 0 0
Case #37: 0 0
Case #38: 0 0
Case #39: 1 0
Case #40: 500000 499999
Case #41: 0 0
Case #42: 0 0
Case #43: 1 1
Case #44: 0 0
Case #45: 0 0
Case #46: 1 0
Case #47: 0 0
Case #48: 1 0
Case #49: 249999 249999
Case #50: 7812 7811
Case #51: 1 1
Case #52: 0 0
Case #53: 0 0
Case #54: 0 0
Case #55: 3 2
Case #56: 1 1
Case #57: 1 0
Case #58: 1 0
Case #59: 1 0
Case #60: 125000 124999
Case #61: 0 0
Case #62: 0 0
Case #63: 0 0
Case #64: 0 0
Case #65: 0 0
Case #66: 2 1
Case #67: 3905 3905
Case #68: 1 0
Case #69: 1 0
Case #70: 3 2
Case #71: 0 0
Case #72: 0 0
Case #73: 0 0
Case #74: 1953 1952
Case #75: 1 1
Case #76: 1 1
Case #77: 1 0
Case #78: 2 2
Case #79: 1 0
Case #80: 0 0
Case #81: 1 0
Case #82: 1 1
Case #83: 0 0
Case #84: 0 0
Case #85: 0 0
Case #86: 0 0
Case #87: 0 0
Case #88: 3 2
Case #89: 0 0
Case #90: 1 0
Case #91: 0 0
Case #92: 0 0
Case #93: 1 0
Case #94: 0 0
Case #95: 0 0
Case #96: 0 0
Case #97: 0 0
Case #98: 0 0
Case #99: 0 0
Case #100: 0 0
@@ -0,0 +1,248 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 (0, 1, 1)\n",
"2 (1, 1, 3)\n",
"3 (1, 2, 3)\n",
"4 (2, 1, 7)\n",
"5 (2, 2, 7)\n",
"6 (2, 3, 7)\n",
"7 (2, 4, 7)\n",
"8 (3, 1, 15)\n",
"9 (3, 2, 15)\n",
"10 (3, 3, 15)\n"
]
}
],
"source": [
"def getLevelPositionCurrsum(n):\n",
" c = 0\n",
" total = 0\n",
" i = 1;\n",
" while total <= n:\n",
" total += i\n",
" if total >= n:\n",
" return (c, n + i - total, total)\n",
" c += 1\n",
" i *= 2\n",
" \n",
" return (0, 0, 0)\n",
"\n",
"for i in range(1, 11):\n",
" print i, getLevelPositionCurrsum(i)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def solution(n, k):\n",
" (l, p, cs) = getLevelPositionCurrsum(k)\n",
" stalls = n - cs\n",
" c = 2 ** l\n",
" if stalls % c == 0:\n",
" lrs = stalls / c\n",
" if lrs % 2 == 0:\n",
" return (lrs / 2, lrs / 2)\n",
" else:\n",
" return ((lrs + 1) / 2, (lrs - 1) / 2)\n",
" else:\n",
" re = stalls % c\n",
" lrs = stalls / c\n",
" if lrs % 2 == 0:\n",
" if p <= re:\n",
" return (lrs / 2 + 1, lrs / 2)\n",
" else:\n",
" return (lrs / 2, lrs / 2)\n",
" else:\n",
" if p <= re:\n",
" return ((lrs + 1) / 2, (lrs + 1) / 2)\n",
" else:\n",
" return ((lrs + 1) / 2, (lrs - 1) / 2)\n",
" \n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"def sol(inputFile):\n",
" res = ''\n",
" with open(inputFile) as f:\n",
" lineNumber = int(f.readline())\n",
" for i in range(lineNumber):\n",
" line = f.readline()\n",
" n = int(line.split(' ')[0])\n",
" k = int(line.split(' ')[1])\n",
" (a, b) = solution(n, k)\n",
" res += 'Case #' + str(i + 1) + ': ' + str(a) + ' ' + str(b) + '\\n'\n",
" with open(inputFile.replace('.in', '.out'), 'w') as fo:\n",
" fo.write(res)\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Case #1: 1 0\n",
"Case #2: 1 0\n",
"Case #3: 1 1\n",
"Case #4: 0 0\n",
"Case #5: 500 499\n",
"Case #6: 0 0\n",
"Case #7: 1 0\n",
"Case #8: 0 0\n",
"Case #9: 0 0\n",
"Case #10: 3 3\n",
"Case #11: 0 0\n",
"Case #12: 1 0\n",
"Case #13: 7 6\n",
"Case #14: 1 0\n",
"Case #15: 1 0\n",
"Case #16: 0 0\n",
"Case #17: 0 0\n",
"Case #18: 1 1\n",
"Case #19: 0 0\n",
"Case #20: 1 0\n",
"Case #21: 1 0\n",
"Case #22: 0 0\n",
"Case #23: 3 2\n",
"Case #24: 1 1\n",
"Case #25: 0 0\n",
"Case #26: 0 0\n",
"Case #27: 1 0\n",
"Case #28: 0 0\n",
"Case #29: 0 0\n",
"Case #30: 1 0\n",
"Case #31: 249 249\n",
"Case #32: 0 0\n",
"Case #33: 1 1\n",
"Case #34: 1 0\n",
"Case #35: 0 0\n",
"Case #36: 0 0\n",
"Case #37: 0 0\n",
"Case #38: 1 0\n",
"Case #39: 1 1\n",
"Case #40: 0 0\n",
"Case #41: 0 0\n",
"Case #42: 0 0\n",
"Case #43: 1 0\n",
"Case #44: 7 6\n",
"Case #45: 1 1\n",
"Case #46: 250 249\n",
"Case #47: 0 0\n",
"Case #48: 1 1\n",
"Case #49: 0 0\n",
"Case #50: 0 0\n",
"Case #51: 0 0\n",
"Case #52: 0 0\n",
"Case #53: 3 2\n",
"Case #54: 499 499\n",
"Case #55: 3 2\n",
"Case #56: 0 0\n",
"Case #57: 0 0\n",
"Case #58: 0 0\n",
"Case #59: 1 0\n",
"Case #60: 250 249\n",
"Case #61: 1 0\n",
"Case #62: 0 0\n",
"Case #63: 0 0\n",
"Case #64: 0 0\n",
"Case #65: 0 0\n",
"Case #66: 0 0\n",
"Case #67: 125 124\n",
"Case #68: 1 1\n",
"Case #69: 0 0\n",
"Case #70: 0 0\n",
"Case #71: 0 0\n",
"Case #72: 0 0\n",
"Case #73: 0 0\n",
"Case #74: 3 3\n",
"Case #75: 1 0\n",
"Case #76: 1 1\n",
"Case #77: 0 0\n",
"Case #78: 3 3\n",
"Case #79: 0 0\n",
"Case #80: 2 1\n",
"Case #81: 0 0\n",
"Case #82: 0 0\n",
"Case #83: 0 0\n",
"Case #84: 1 0\n",
"Case #85: 2 2\n",
"Case #86: 1 0\n",
"Case #87: 3 3\n",
"Case #88: 0 0\n",
"Case #89: 1 1\n",
"Case #90: 0 0\n",
"Case #91: 1 0\n",
"Case #92: 1 1\n",
"Case #93: 0 0\n",
"Case #94: 0 0\n",
"Case #95: 0 0\n",
"Case #96: 3 2\n",
"Case #97: 0 0\n",
"Case #98: 0 0\n",
"Case #99: 0 0\n",
"Case #100: 0 0\n",
"\n"
]
}
],
"source": [
"print sol('C-small-practice-1.in')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@@ -3,9 +3,7 @@
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"metadata": {},
"outputs": [],
"source": [
"def solution(ps, c):\n",
@@ -34,9 +32,7 @@
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"metadata": {},
"outputs": [],
"source": [
"def sol(inputFile):\n",
@@ -56,9 +52,7 @@
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"metadata": {},
"outputs": [
{
"name": "stdout",
@@ -198,7 +192,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
"version": "2.7.12"
}
},
"nbformat": 4,