| Task: | Lähetit |
| Sender: | |
| Submission time: | 2015-07-18 17:41:57 +0300 |
| Language: | Python3 |
| Status: | READY |
| Result: | 12 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 12 |
| #2 | TIME LIMIT EXCEEDED | 0 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.09 s | 1 | details |
| #2 | ACCEPTED | 0.14 s | 1 | details |
| #3 | ACCEPTED | 0.20 s | 1 | details |
| #4 | ACCEPTED | 0.20 s | 1 | details |
| #5 | ACCEPTED | 0.14 s | 1 | details |
| #6 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #7 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #8 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #9 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #10 | TIME LIMIT EXCEEDED | -- | 2 | details |
| #11 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #12 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #13 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #14 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #15 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
#!/usr/bin/env python3
n, k = map(int, input().split())
uhkaukset = {}
for x in range(1, n + 1):
for y in range(1, n + 1):
uhkaukset[(x, y)] = 0
def uhkaa(x0, y0):
yield (x0, y0)
x, y = x0, y0
x -= 1
y -= 1
while x and y:
yield (x, y)
x -= 1
y -= 1
x, y = x0, y0
x -= 1
y += 1
while x and y <= n:
yield (x, y)
x -= 1
y += 1
x, y = x0, y0
x += 1
y -= 1
while x <= n and y:
yield (x, y)
x += 1
y -= 1
x, y = x0, y0
x += 1
y += 1
while x <= n and y <= n:
yield (x, y)
x += 1
y += 1
def mahdollisuuksia(lahetteja_jaljella, ruutuja_jaljella, x, y):
if lahetteja_jaljella == 0:
return 1
if lahetteja_jaljella > ruutuja_jaljella:
return 0
if lahetteja_jaljella > sum(1 for v in uhkaukset.values() if v == 0):
# liian vähän uhkaamattomia ruutuja jäljellä
return 0
mahd = 0
while ruutuja_jaljella:
if uhkaukset[(x, y)] == 0:
# ruutua ei uhata, sijoitetaan lähetti
for xu, yu in uhkaa(x, y):
uhkaukset[(xu, yu)] += 1
if x == n:
mahd += mahdollisuuksia(lahetteja_jaljella - 1, ruutuja_jaljella - 1, 1, y + 1)
else:
mahd += mahdollisuuksia(lahetteja_jaljella - 1, ruutuja_jaljella - 1, x + 1, y)
for xu, yu in uhkaa(x, y):
uhkaukset[(xu, yu)] -= 1
if x == n:
x = 1
y += 1
else:
x += 1
ruutuja_jaljella -= 1
return mahd
print(mahdollisuuksia(k, n * n, 1, 1))
Test details
Test 1
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 2 |
| correct output |
|---|
| 240 |
| user output |
|---|
| 240 |
Test 2
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 4 |
| correct output |
|---|
| 2728 |
| user output |
|---|
| 2728 |
Test 3
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 6 |
| correct output |
|---|
| 1960 |
| user output |
|---|
| 1960 |
Test 4
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 8 |
| correct output |
|---|
| 32 |
| user output |
|---|
| 32 |
Test 5
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 5 10 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 6
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 10 4 |
| correct output |
|---|
| 1809464 |
| user output |
|---|
| (empty) |
Test 7
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 10 8 |
| correct output |
|---|
| 209594075 |
| user output |
|---|
| (empty) |
Test 8
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 10 12 |
| correct output |
|---|
| 811277399 |
| user output |
|---|
| (empty) |
Test 9
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 10 16 |
| correct output |
|---|
| 17275136 |
| user output |
|---|
| (empty) |
Test 10
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 10 20 |
| correct output |
|---|
| 0 |
| user output |
|---|
| (empty) |
Test 11
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 40 |
| correct output |
|---|
| 126883191 |
| user output |
|---|
| (empty) |
Test 12
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 80 |
| correct output |
|---|
| 785497039 |
| user output |
|---|
| (empty) |
Test 13
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 120 |
| correct output |
|---|
| 324216296 |
| user output |
|---|
| (empty) |
Test 14
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 160 |
| correct output |
|---|
| 895190039 |
| user output |
|---|
| (empty) |
Test 15
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 200 |
| correct output |
|---|
| 0 |
| user output |
|---|
| (empty) |
