From d791e8bdd97dd76dd12d0e101c0619c4ca5b8fe3 Mon Sep 17 00:00:00 2001 From: Xevion Date: Sat, 24 Aug 2019 20:51:10 -0500 Subject: [PATCH] solution F icpc 2018 --- .../E/main.py | 2 +- .../F/inputs/1 | 2 + .../F/inputs/2 | 2 + .../F/main.py | 40 +++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 icpc/2018 ICPC East Central North America Regional Contest/F/inputs/1 create mode 100644 icpc/2018 ICPC East Central North America Regional Contest/F/inputs/2 create mode 100644 icpc/2018 ICPC East Central North America Regional Contest/F/main.py diff --git a/icpc/2018 ICPC East Central North America Regional Contest/E/main.py b/icpc/2018 ICPC East Central North America Regional Contest/E/main.py index 794170d..b9fd35a 100644 --- a/icpc/2018 ICPC East Central North America Regional Contest/E/main.py +++ b/icpc/2018 ICPC East Central North America Regional Contest/E/main.py @@ -15,7 +15,7 @@ def main(): # Parse inputs inputs = [list(map(float, open(path).read().split())) for path in inputs] # 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__": main() \ No newline at end of file diff --git a/icpc/2018 ICPC East Central North America Regional Contest/F/inputs/1 b/icpc/2018 ICPC East Central North America Regional Contest/F/inputs/1 new file mode 100644 index 0000000..17cbd4b --- /dev/null +++ b/icpc/2018 ICPC East Central North America Regional Contest/F/inputs/1 @@ -0,0 +1,2 @@ +14 2 3 +5 6 9 8 5 4 6 5 2 3 6 8 7 4 \ No newline at end of file diff --git a/icpc/2018 ICPC East Central North America Regional Contest/F/inputs/2 b/icpc/2018 ICPC East Central North America Regional Contest/F/inputs/2 new file mode 100644 index 0000000..71630d8 --- /dev/null +++ b/icpc/2018 ICPC East Central North America Regional Contest/F/inputs/2 @@ -0,0 +1,2 @@ +14 3 2 +5 6 9 8 5 4 6 5 2 3 6 8 7 4 \ No newline at end of file diff --git a/icpc/2018 ICPC East Central North America Regional Contest/F/main.py b/icpc/2018 ICPC East Central North America Regional Contest/F/main.py new file mode 100644 index 0000000..2e244fd --- /dev/null +++ b/icpc/2018 ICPC East Central North America Regional Contest/F/main.py @@ -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() \ No newline at end of file