mirror of
https://github.com/Xevion/contest.git
synced 2025-12-13 02:11:16 -06:00
solution F icpc 2018
This commit is contained in:
@@ -15,7 +15,7 @@ def main():
|
|||||||
# Parse inputs
|
# Parse inputs
|
||||||
inputs = [list(map(float, open(path).read().split())) for path in inputs]
|
inputs = [list(map(float, open(path).read().split())) for path in inputs]
|
||||||
# Process inputs and print outputs
|
# Process inputs and print outputs
|
||||||
print('\n'.join(map(lambda item : process(*item), inputs)))
|
print('\n{}\n'.format('-' * 10).join(map(lambda item : process(*item), inputs)))
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
14 2 3
|
||||||
|
5 6 9 8 5 4 6 5 2 3 6 8 7 4
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
14 3 2
|
||||||
|
5 6 9 8 5 4 6 5 2 3 6 8 7 4
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import os, sys
|
||||||
|
|
||||||
|
def process(item):
|
||||||
|
# Constants and initial values
|
||||||
|
stocks, (n, m) = item[1], item[0]
|
||||||
|
peaks, valleys = [], []
|
||||||
|
possiblePeaks, possibleValleys = range(n, len(stocks) - n), range(m, len(stocks) - m)
|
||||||
|
# Check all possible peaks
|
||||||
|
for index in possiblePeaks:
|
||||||
|
isPeak = True
|
||||||
|
for i in range(1, n + 1):
|
||||||
|
if not stocks[index - i] < stocks[index] or not stocks[index] > stocks[index + i]:
|
||||||
|
isPeak = False
|
||||||
|
if isPeak:
|
||||||
|
peaks.append(index)
|
||||||
|
print(peaks)
|
||||||
|
# Check all possible valleys
|
||||||
|
for index in possibleValleys:
|
||||||
|
isValley = True
|
||||||
|
for i in range(1, m + 1):
|
||||||
|
if not stocks[index - i] > stocks[index] or not stocks[index] < stocks[index + i]:
|
||||||
|
isValley = False
|
||||||
|
if isValley:
|
||||||
|
valleys.append(index)
|
||||||
|
print(valleys)
|
||||||
|
return len(peaks), len(valleys)
|
||||||
|
|
||||||
|
# Driver code for all inputs in folder
|
||||||
|
def main():
|
||||||
|
def parse(input):
|
||||||
|
return [list(map(int, input[0].split()))[1:], list(map(int, input[1].split()))]
|
||||||
|
# Read inputs
|
||||||
|
inputs = [os.path.join(sys.path[0], 'inputs', x) for x in
|
||||||
|
os.listdir(os.path.join(sys.path[0], 'inputs'))]
|
||||||
|
inputs = [parse(open(path).read().split('\n')) for path in inputs]
|
||||||
|
# Parse inputs
|
||||||
|
print('\n{}\n'.format('-' * 10).join(map(lambda item : str(process(item)), inputs)))
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user