about summary refs log tree commit diff
path: root/others/volume1/074.pas
diff options
context:
space:
mode:
authorRaphael McSinyx <vn.mcsinyx@gmail.com>2017-02-19 11:37:07 +0700
committerRaphael McSinyx <vn.mcsinyx@gmail.com>2017-02-19 11:37:07 +0700
commita53c4128c29f98b5fdfd9b0e13a3bbe094d975ec (patch)
tree77351187cc721bb535ffb3ff140e1355276ba8c2 /others/volume1/074.pas
parentfed71ad5b9c7e3524931b939ec369a559cf2b0b9 (diff)
downloadcp-a53c4128c29f98b5fdfd9b0e13a3bbe094d975ec.tar.gz
Update others/volume1
Diffstat (limited to 'others/volume1/074.pas')
-rw-r--r--others/volume1/074.pas30
1 files changed, 30 insertions, 0 deletions
diff --git a/others/volume1/074.pas b/others/volume1/074.pas
new file mode 100644
index 0000000..6006157
--- /dev/null
+++ b/others/volume1/074.pas
@@ -0,0 +1,30 @@
+var
+  n, i, j, max: int16;
+  a: array of int64;
+
+function zigzag(i, j: int16): boolean;
+  begin
+    if j - i < 2 then
+      exit(true);
+    if (a[j - 1] - a[j - 2]) * (a[j - 1] - a[j]) > 0 then
+      exit(true);
+    zigzag := false
+  end;
+
+begin
+  readln(n);
+  setlength(a, n);
+  for i := n - 1 downto 0 do
+    read(a[i]);
+  max := 0;
+  while i < n - 1 do
+    for j := i + 1 to n - 1 do
+      if (j = n - 1) or
+         not zigzag(i, j + 1) then
+        begin
+          if j - i > max then
+            max := j - i;
+          i := j
+        end;
+  writeln(max + 1)
+end.