This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
import os
import sys
from io import BytesIO, IOBase
def main():
pass
# region fastio
BUFSIZE = 8192
class FastIO(IOBase):
newlines = 0
def __init__(self, file):
self._fd = file.fileno()
self.buffer = BytesIO()
self.writable = "x" in file.mode or "r" not in file.mode
self.write = self.buffer.write if self.writable else None
def read(self):
while True:
b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
if not b:
break
ptr = self.buffer.tell()
self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
self.newlines = 0
return self.buffer.read()
def readline(self):
while self.newlines == 0:
b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
self.newlines = b.count(b"\n") + (not b)
ptr = self.buffer.tell()
self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
self.newlines -= 1
return self.buffer.readline()
def flush(self):
if self.writable:
os.write(self._fd, self.buffer.getvalue())
self.buffer.truncate(0), self.buffer.seek(0)
class IOWrapper(IOBase):
def __init__(self, file):
self.buffer = FastIO(file)
self.flush = self.buffer.flush
self.writable = self.buffer.writable
self.write = lambda s: self.buffer.write(s.encode("ascii"))
self.read = lambda: self.buffer.read().decode("ascii")
self.readline = lambda: self.buffer.readline().decode("ascii")
sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
input = lambda: sys.stdin.readline().rstrip("\r\n")
n,q,s,t = map(int, input().split())
alts = []
def calc(x):
if x>0:
x = abs(x)
return -1*s*x
elif x<=0:
x = abs(x)
return t*x
for i in range(n+1):
alts.append(int(input()))
queries = []
for i in range(q):
queries.append(list(map(int, input().split())))
diff = []
for i in range(n):
diff.append(alts[i+1]-alts[i])
ans = 0
for i in diff:
ans += calc(i)
for i in queries:
i[0] -= 1
a=calc(diff[i[0]])
if i[1] != n:
b = calc(diff[i[1]])
diff[i[0]] += i[2]
if i[1]!=n:
diff[i[1]] -= i[2]
ans += calc(diff[i[0]])-a
if i[1] != n:
ans += calc(diff[i[1]])-b
print(ans)
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |