| Task: | Tontti |
| Sender: | Ilari |
| Submission time: | 2015-09-29 17:01:56 +0300 |
| Language: | Python3 |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | TIME LIMIT EXCEEDED | 0 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.07 s | 1 | details |
| #2 | ACCEPTED | 0.10 s | 1 | details |
| #3 | WRONG ANSWER | 0.08 s | 1 | details |
| #4 | WRONG ANSWER | 0.08 s | 1 | details |
| #5 | WRONG ANSWER | 0.08 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/python3
import math
n, m, x = map(int, input().split())
#print(n,m,x)
a=[]
for i in range(0,n):
a.append(list(map(int, input().replace('.','0').replace('*','1'))))
#a=a.replace('.','0').replace('*','1')
def sumTrees(x,y):
trees=0
b=[]
for i in range(0,y):
i1=i-1
b.append([])
ai=list(a[i])
for j in range(0,x):
trees+=ai[j]
if i>0:
b[i].append(trees+b[i1][j])
else:
b[i].append(trees)
trees=0
return b
b=sumTrees(m,n)
#for i in b:
# print(i)
#for i in range(0,n):
# ai=a[i]
# b.append([])
#
# for j in range(0,m):
# b[i]=ai[j]
#print(a)
#for i in range(1, limit+1):
# pass
#@profile
#@profile
def countTrees(x,x1,y,y1,size,x0,y0):
#trees=0
if not (x0 or y0):
trees=b[y+size][x+size]-b[y1][x+size]-b[y+size][x1]+b[y1][x1]
elif x==0 and y==0:
trees=b[size][size]
elif x==0:
trees=b[y+size][size]-b[y1][size]
else:
trees=b[size][x+size]-b[size][x1]
return trees
def possibleSquares(ny,mx,sqrt):
if ny<mx:
limit=ny
else:
limit=mx
return range(sqrt-1,limit)
#print(countTrees(2,0,3))
#answer=0
sqrt=int(math.sqrt(x))
#@profile
def calculate():
answer=0
for i in range(0, m):
mx=m-i
i1=i-1
if i==0:
i0=1
else:
i0=0
for j in range(0,n):
if j==0:
j0=1
else:
i0=0
j1=j-1
#trees = 0
for k in possibleSquares(n-j,mx, sqrt):
trees = countTrees(i,i1,j,j1,k,i0,j0)
if trees > x:
break
elif trees == x:
answer+=1
return answer
print(calculate())
Test details
Test 1
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 1 ......*... .......*.. *..*....*. *....*.... ... |
| correct output |
|---|
| 94 |
| user output |
|---|
| 79 |
Test 2
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 10 10 5 ********** ********** ********** ********** ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 3
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 10 **...*...* *..*.**.*. ...**.*..* *...**.*.. ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 0 |
Test 4
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 5 ****...... *.*.**..** ....*.*..* ...*.***.. ... |
| correct output |
|---|
| 16 |
| user output |
|---|
| 11 |
Test 5
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 2 **.***..*. ...*.*.... .***.*...* ***.***..* ... |
| correct output |
|---|
| 30 |
| user output |
|---|
| 29 |
Test 6
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 500 1 ................................. |
| correct output |
|---|
| 9552040 |
| user output |
|---|
| (empty) |
Test 7
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 500 5 ................................. |
| correct output |
|---|
| 1536063 |
| user output |
|---|
| (empty) |
Test 8
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 500 25000 **...*...**..*.*..*.**.*..*.*.... |
| correct output |
|---|
| 288 |
| user output |
|---|
| (empty) |
Test 9
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 500 12500 **.**.*..*...*.**...*.***........ |
| correct output |
|---|
| 786 |
| user output |
|---|
| (empty) |
Test 10
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 500 5000 .*.*.**..*.*.**.**..*..**...*.... |
| correct output |
|---|
| 1763 |
| user output |
|---|
| (empty) |
Test 11
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 2000 2000 1 ................................. |
| correct output |
|---|
| 489611392 |
| user output |
|---|
| (empty) |
Test 12
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 2000 2000 5 ................................. |
| correct output |
|---|
| 120725884 |
| user output |
|---|
| (empty) |
Test 13
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 2000 2000 400000 ..*..**.**.**.*.***...**.*..**... |
| correct output |
|---|
| 1849 |
| user output |
|---|
| (empty) |
Test 14
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 2000 2000 200000 ***.*....*.*..*....**..*..*.*.... |
| correct output |
|---|
| 2665 |
| user output |
|---|
| (empty) |
Test 15
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 2000 2000 80000 **.**...*.***.**....**.*....*.... |
| correct output |
|---|
| 5587 |
| user output |
|---|
| (empty) |
