75 lines
1.9 KiB
Python
75 lines
1.9 KiB
Python
heights = []
|
|
with open("outofplace.in", "r") as fin:
|
|
L = list(fin)
|
|
N = int(L[0])
|
|
for i in range(0, N):
|
|
heights.append(int(L[i+1]))
|
|
|
|
# print(heights)
|
|
|
|
# step 1: find cow that's out of order
|
|
pos = -1
|
|
for i in range(0, N-1):
|
|
if heights[i] > heights[i+1]:
|
|
if i+2 >= N or heights[i] <= heights[i+2]:
|
|
print(i+1, "is the bad cow!")
|
|
pos = i+1
|
|
|
|
correct_pos = -1
|
|
for j in range(1, pos+1).reverse():
|
|
if (heights[j-1] <= heights[pos] <= heights[j]):
|
|
# we found a good position!
|
|
correct_pos = j
|
|
break
|
|
|
|
print(correct_pos)
|
|
|
|
count = 0
|
|
for j in range(pos, correct_pos):
|
|
if heights[j-1] == heights[j]: count = count+1
|
|
|
|
break
|
|
|
|
else:
|
|
print(i, "is the bad cow!")
|
|
pos = i
|
|
|
|
correct_pos = -1
|
|
for j in range(pos, N):
|
|
if (heights[j] <= heights[pos] <= heights[j+1]):
|
|
# we found a good position!
|
|
correct_pos = j+1
|
|
break
|
|
|
|
count = 0
|
|
for j in range(pos, correct_pos):
|
|
if heights[j] == heights[j+1]: count = count+1
|
|
|
|
break
|
|
|
|
|
|
# we didn't find a cow out of order :)
|
|
if pos == -1:
|
|
with open("outofplace.out", "w") as fout:
|
|
fout.write(str(0))
|
|
|
|
else:
|
|
with open("outofplace.out", "w") as fout:
|
|
fout.write(str(count))
|
|
|
|
# # step 2: find the correct position
|
|
# correct_pos = -1
|
|
# for i in range(0, N-1):
|
|
# if (heights[i] <= pos <= heights[i+1]):
|
|
# # we found a good position!
|
|
# correct_pos = i+1
|
|
|
|
# # step 3: count number of positions in between
|
|
# # remember to count cows of the same height exactly once!
|
|
|
|
# if correct_pos < pos:
|
|
# count = 0
|
|
# for i in range(pos-1, correct_pos-1):
|
|
|
|
|