Problem:
 Score : 200 points    Problem Statement There are N pieces of source code. The characteristics of the i -th code is represented by M integers A_{i1}, A_{i2}, ..., A_{iM} .  Additionally, you are given integers B_1, B_2, ..., B_M and C .  The i -th code correctly solves this problem if and only if A_{i1} B_1 + A_{i2} B_2 + ... + A_{iM} B_M + C > 0 .  Among the N codes, find the number of codes that correctly solve this problem.      Constraints  All values in input are integers.  1 \leq N, M \leq 20  -100 \leq A_{ij} \leq 100  -100 \leq B_i \leq 100  -100 \leq C \leq 100         Input Input is given from Standard Input in the following format:  N  M  C  B_1  B_2  ...  B_M  A_{11}  A_{12}  ...  A_{1M}  A_{21}  A_{22}  ...  A_{2M}  \vdots  A_{N1}  A_{N2}  ...  A_{NM}       Output Print the number of codes among the given N codes that correctly solve this problem.        Sample Input 1 2 3 -10
1 2 3
3 2 1
1 2 2      Sample Output 1 1  Only the second code correctly solves this problem, as follows:   Since 3 \times 1 + 2 \times 2 + 1 \times 3 + (-10) = 0 \leq 0 , the first code does not solve this problem.  1 \times 1 + 2 \times 2 + 2 \times 3 + (-10) = 1 > 0 , the second code solves this problem.        Sample Input 2 5 2 -4
-2 5
100 41
100 40
-3 0
-6 -2
18 -13      Sample Output 2 2       Sample Input 3 3 3 0
100 -100 0
0 100 100
100 100 100
-100 100 100      Sample Output 3 0  All of them are Wrong Answer . Except yours.

Solution (Python):
n, m, c = map(int, input().split())
B = list(map(int, input().split()))
ans = 0

for i in range(n):
    cnt = c
    A = list(map(int, input().split()))
    for j in range(m):
        cnt += A[j] * B[j]
    if cnt > 0:
        ans += 1

print(ans)

Solution (Python):
N,M,C=map(int,input().split())
B=[int(i) for i in input().split()]
A=[]
for j in range(N):
    A.append([int(i) for i in input().split()])
ans=0
for k in range(N):
    sum_num=0
    for l in range(M):
        sum_num=sum_num+B[l]*A[k][l]
    if sum_num+C>0:
        ans=ans+1
print(ans)

Solution (Python):
import numpy as np
n,m,c= map(int,input().split())
b = list(map(int,input().split()))
b=np.array(b)
a=[]
for i in range(n):
  a.append(list(map(int,input().split())))
a = np.array(a)
ans=0
for i in range(n):
  if sum(a[i] * b) + c > 0:
    ans +=1
print(ans)

Solution (Python):
N,M,C = map(int, input().split())

B = list(map(int,input().split()))
    
A = []
for i in range(N):
    A.append(list(map(int,input().split())))
    
count = 0
for i in range(N):
    su = 0
    for j in range(M):
        su += A[i][j] * B[j]
    if su + C > 0:
        count += 1
        
print(count)

Solution (Python):
import numpy as np

N, M, C = map(int, input().split())
B = np.array(list(map(int, input().split())))

res = 0

for i in range(N):
    A = np.array(list(map(int, input().split())))
    if sum(A*B) + C > 0:
        res += 1

print(res)

Solution (Python):
def ans():
  N, M, C = map(int,input().split())
  B = list(map(int,input().split()))
  A = [list(map(int,input().split())) for _ in range(N)]
  cnt  = 0
  for a in A:
    tmp = C
    for i in range(M):
      tmp += a[i]*B[i]
    if(tmp > 0):
      cnt += 1
  print(cnt)
ans()

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
ans = 0
for _ in range(n):
    a = list(map(int, input().split()))
    tmp = 0
    for i, t in enumerate(a):
        tmp += t*b[i]
    tmp += c
    if tmp > 0:
        ans += 1

print(ans)

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
a = []
for i in range(n):
    a.append(list(map(int, input().split())))

count = 0
for i in range(n):
    summ = 0
    for j in range(m):
        summ = summ + a[i][j] * b[j]
    if summ + c > 0:
        count += 1
print(count)

Solution (Python):




n, m, c = map(int,input().split())
b = list(map(int, input().split()))
a = list()

cnt = 0
for idx in range(n):
    a.append(list(map(int, input().split())))

    sum = c
    for idx_2 in range(m):
        sum += a[idx][idx_2]*b[idx_2]
    
    if sum > 0:
        cnt += 1


print(cnt)

Solution (Python):
N,M,C = map(int,input().split())
B=[int(i) for i in input().split()]

A=[]
for i in range(N):
    A.append(list(map(int,input().split())))

ans = 0
for i in range(N):
  c = 0
  for j in range(M):
    c += A[i][j]*B[j] 
  if c + C >0:
    ans+=1
print(ans)

Solution (Python):
N,M,C=[int(x) for x in input().split()]
BM=[int(x) for x in input().split()]
ans=0
for i in range(N):
  AiM=[int(x) for x in input().split()]
  sum=0
  for i in range(M):
    sum+=AiM[i]*BM[i]
  if sum+C>0:
    ans+=1

print(ans)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))

A = []
for i in range(N):
    A.append(list(map(int, input().split())))

cnt = 0

for i in range(N):
    s = 0
    for j in range(M):
        s += A[i][j] * B[j]
    s += C

    if s > 0:
        cnt += 1

print(cnt)

Solution (Python):
n, m, c = list(map(int, input().split()))
b = list(map(int, input().split()))
a = [[] for _ in range(n)]
for i in range(n):
    a[i] = list(map(int, input().split()))
    
cnt = 0

for i in range(n):
    ab = sum([a[i][j]*b[j] for j in range(m)])
    if ab + c > 0:
        cnt += 1
        
print(cnt)

Solution (Python):
n,m,c=map(int,input().split())
b=list(map(int,input().split()))
ans=0

for i in range(n):
    a=list(map(int,input().split()))
    k=c
    for j in range(m):
        k+=a[j]*b[j]
    if(k>0):
        ans+=1

print(ans)

Solution (Python):
n, m, c = map(int, input().split())
b = [int(s) for s in input().split()]
cnt = 0
for _ in range(n):
    a = [int(s) for s in input().split()]
    if sum([a[i] * b[i] for i in range(len(a))]) + c > 0:
        cnt += 1
print(cnt)

Solution (Python):
data = input().split()
N = int(data[0])
M = int(data[1])
C = int(data[2])

B = []
A = []
cnt = 0

data = input().split()
for lop in range(M):
    B.append( int(data[lop]) )

for lop in range(N):
    data = input().split()
    hantai = 0
    for lop2 in range(M):
        hantai += B[lop2] * int(data[lop2])
    hantai += C
    if hantai > 0 :
        cnt += 1

print(cnt)

Solution (Python):
N, M, C = [int(x) for x in input().split()]
B_list = [int(x) for x in input().split()]
NUM = 0
for _ in range(N):
  A_list = [int(x) for x in input().split()]
  if sum([A*B for(A, B) in zip(A_list, B_list)]) + C > 0:
    NUM += 1
print(NUM)

Solution (Python):
def makelist2(n, m):
    return [[0 for k in range(m)] for i in range(n)]

n, m, c = map(int, input().split())
b = input().split()

a = makelist2(n, m)
for i in range(len(b)):
    b[i] = int(b[i])

for i in range(n):
    temp = input().split()
    for j in range(m):
        a[i][j] = int(temp[j])

ans = 0

for i in range(n):
    sum = 0
    for j in range(m):
        sum += a[i][j]*b[j]
    if(sum>(-1)*c):
        ans += 1


print(ans)

Solution (Python):
n,m,c=map(int,input().split())
a=list(map(int,input().split()))
p=0
for i in range(n):
    b=list(map(int,input().split()))
    d=c
    for j in range(m):
        d+=a[j]*b[j]
    else:
        if d>0:
            p+=1
print(p)

Solution (Python):
n, m, c = map(int, input().split())
b = [int(x) for x in input().split()]

ans = 0
for _ in range(n):
    a = ([int(x) for x in input().split()])
    equ = 0
    for i in range(m):
        equ += a[i] * b[i]
    equ += c

    if equ > 0:
        ans+=1


print(ans)

Solution (Python):
N, M, C = map(int, input().split())
b_list = list(map(int, input().split()))

num_clear = 0
for i in range(N):
    a_list = list(map(int, input().split()))
    cur_score = 0
    for b, a in zip(b_list, a_list):
        cur_score += b * a
    cur_score += C
    if cur_score > 0:
        num_clear += 1

print(num_clear)

Solution (Python):
N,M,C = list(map(int,input().split()))
B = list(map(int,input().split()))
A = []
for i in range(N):
    A.append(list(map(int,input().split())))

cnt = 0

for i in range(N):
    sumnum = 0
    for j in range(M):
        sumnum += A[i][j]*B[j]
    sumnum += C
    if sumnum > 0:
        cnt += 1

print(cnt)

Solution (Python):
N,M,C = map(int,input().split(" "))
B = input().split(" ")
B = [int(i) for i in B]

count = 0
for i in range(N):
    A = input().split(" ")
    A = [int(i) for i in A]
    
    total = C
    for j in range(M):
        total += A[j] * B[j]
        
    if total > 0:
        count += 1
print(count)

Solution (Python):
N, M, C = map(int,input().split())
ans = 0
B = list(map(int,input().split()))
for i in range(N):
  A = list(map(int,input().split()))
  sum = C
  for j in range(M):
    sum += A[j] * B[j]
  if sum > 0:
    ans += 1
print(ans)

Solution (Python):
import sys
DBG = True
n,m,c =      map(int, input().split())
b   = list(map(int, input().split()))
cnt = 0
for i in range(n):
  a   = list(map(int, input().split()))
  sum = c
  for j in range(m):
      sum += a[j] * b[j]
  if sum > 0:
      cnt += 1

print(cnt)

Solution (Python):
import numpy as np
N,M,C = map(int,input().split())
B = list(map(int,input().split()))
A = [list(map(int,input().split())) for i in range(N)]
judge = 0
for i in range(N):
	sum = 0
	for j in range(M):
		sum += A[i][j]*B[j]
	if sum+C > 0:
		judge += 1
		
print(judge)

Solution (Python):
N,M,C = map(int,input().split())
B = input().split()
count = 0
sum = 0
for i in range(M):
  B[i] = int(B[i])
  
for i in range(N):
  A = input().split()
  for i in range(M):
    A[i] = int(A[i])
    sum += A[i]*B[i]
  sum += C
  if(sum > 0):
    count += 1
  sum = 0

print(count)

Solution (Python):
n,m,c = map(int,input().split())
B=list(map(int,input().split()))

ans = 0
for _ in range(n):
    Ai=list(map(int,input().split()))
    tmp=0
    for i in range(m):
        tmp += Ai[i]*B[i]
    tmp+=c
    if tmp > 0:
        ans+=1

print(ans)

Solution (Python):
def main():
    N, M, C = map(int, input().split(' '))

    B = list(map(int, input().split(' ')))
    
    A = []; i = 0
    while i < N:
        A.append(list(map(int, input().split(' '))))
        i += 1
    
    counter = 0

    for a in A:
        total = 0
        for elem_a, elem_b in zip(a, B):
            total += elem_a * elem_b
        total += C
        if total > 0:
            counter += 1
    
    print(counter)

if __name__ == '__main__':
    main()

Solution (Python):
N,M,C = map(int,input().split())
B = list(map(int,input().split()))

ans = 0
for i in range(N):
    A = list(map(int,input().split()))
    temp = C
    for j in range(M):
        temp += A[j]*B[j]
    
    if temp>0:
        ans += 1

print(ans)

Solution (Python):
def main() -> None:
    N, M, C = map(int, input().split())
    b = tuple(map(int, input().split()))
    l = [tuple(map(int, input().split())) for _ in range(N)]
    
    
    ans = 0
    for a in l:
        s = 0
        for i in range(len(a)):
            s += a[i] * b[i]
        if s + C > 0:
            ans += 1
    print(ans)


if __name__ == '__main__':
    main()

Solution (Python):
N, M, C  = map(int, input().split())
B = list(map(int, input().split()))
ans = 0
for _ in range(N):
    A = list(map(int, input().split()))
    sumab = 0
    for i in range(M):
        sumab += A[i] * B[i]
        if i == M - 1:
            if  sumab  + C > 0:
                ans += 1
print(ans)

Solution (Python):
def solve(n, m, c, b_list, a_matrix):
    ans = 0
    for i in range(n):
        val = c
        for j in range(m):
            val += b_list[j] * a_matrix[i][j]
        if val > 0:
            ans += 1
    print(ans)

n, m, c = map(int, input().split())
b_list = list(map(int, input().split()))
a_matrix = []

for i in range(n):
    a_matrix.append(list(map(int, input().split())))

solve(n, m, c, b_list, a_matrix)

Solution (Python):
n,m,c=map(int,input().split())
base=list(map(int,input().split()))
a=[]
for i in range(n):
    a.append(list(map(int,input().split())))

clear=0
sum_1=0
for j in range(n):
    for k in range(m):
        sum_1+=base[k]*a[j][k]
    if sum_1+c>0:
        clear+=1
    sum_1=0
    
print(clear)

Solution (Python):
N,M,C = map(int,input().split())
b = [int(i) for i in input().split()]
a = []
ret = 0
for i in range(N):
    a.append([int(j) for j in input().split()])

for i in range(N):
    s = 0
    for j in range(M):
        s += a[i][j] * b[j]
    if s + C > 0:
        ret += 1
print(ret)

Solution (Python):
N, M, C = (int(i) for i in input().split())
B = [int(i) for i in input().split()]

cnt = 0
for i in range(N):
    A = [int(j) for j in input().split()]
    mult = [x * y for (x, y) in zip(A, B)]
    if sum(mult) + C > 0:
        cnt += 1

print(cnt)

Solution (Python):
import numpy as np
n, m, c = list(map(int, input().split()))
b = np.asarray(list(map(int, input().split())))
ans = 0
for i in range(n):
    a = np.asarray(list(map(int, input().split())))
    if np.dot(a, b) + c > 0:
        ans = ans+1

print(ans)

Solution (Python):
import sys



import numpy as np


"""Template"""


class IP:
    """
    入力を取得するクラス
    """

    def __init__(self):
        self.input = sys.stdin.readline

    def I(self):
        """
        1文字の取得に使います
        :return: int
        """
        return int(self.input())

    def S(self):
        """
        1文字の取得(str
        :return: str
        """
        return self.input()

    def IL(self):
        """
        1行を空白で区切りリストにします(int
        :return: リスト
        """
        return list(map(int, self.input().split()))

    def SL(self):
        """
        1行の文字列を空白区切りでリストにします
        :return: リスト
        """
        return list(map(str, self.input().split()))

    def ILS(self, n):
        """
        1列丸々取得します(int
        :param n: 行数
        :return: リスト
        """
        return [int(self.input()) for _ in range(n)]

    def SLS(self, n):
        """
        1列丸々取得します（str
        :param n: 行数
        :return: リスト
        """
        return [self.input() for _ in range(n)]

    def SILS(self, n):
        """
        Some Int LineS
        横に複数、縦にも複数
        :param n: 行数
        :return: list
        """
        return [self.IL() for _ in range(n)]

    def SSLS(self, n):
        """
        Some String LineS
        :param n: 行数
        :return: list
        """
        return [self.SL() for _ in range(n)]


class Idea:
    def __init__(self):
        pass

    def HF(self, p):
        """
        Half enumeration
        半分全列挙です
        pの要素の和の組み合わせを作ります。
        ソート、重複削除行います
        :param p: list : 元となるリスト
        :return: list : 組み合わせられた和のリスト
        """
        return sorted(set(p[i] + p[j] for i in range(len(p)) for j in range(i, len(p))))

    def Bfs2(self, a):
        """
        bit_full_search2
        bit全探索の改良版
        全探索させたら2進数のリストと10進数のリストを返す
        :return: list２つ : １個目 2進数(16桁)  2個目 10進数
        """
        
        
        
        value = []
        for i in range(1 << len(a)):
            output = []

            for j in range(len(a)):
                if self.bit_o(i, j):
                    """右からj+1番目のiが1かどうか判定"""
                    
                    output.append(a[j])
            value.append([format(i, 'b').zfill(16), sum(output)])

        value.sort(key=lambda x: x[1])
        bin = [value[k][0] for k in range(len(value))]
        val = [value[k][1] for k in range(len(value))]
        return bin, val

    def S(self, s, r=0, m=-1):
        """
        ソート関係行います。色々な設定あります。
        :param s: 元となるリスト
        :param r: reversするかどうか 0=False 1=True
        :param m: （2次元配列）何番目のインデックスのソートなのか
        :return: None
        """
        r = bool(r)
        if m == -1:
            s.sort(reverse=r)
        else:
            s.sort(reverse=r, key=lambda x: x[m])

    def bit_n(self, a, b):
        """
        bit探索で使います。0以上のときにTrue出します
        自然数だからn
        :param a: int
        :param b: int
        :return: bool
        """
        return bool((a >> b & 1) > 0)

    def bit_o(self, a, b):
        """
        bit探索で使います。1のときにTrue出すよ
        oneで1
        :param a: int
        :param b: int
        :return: bool
        """
        return bool(((a >> b) & 1) == 1)

    def ceil(self, x, y):
        """
        Round up
        小数点切り上げ割り算
        :param x: int
        :param y: int
        :return: int
        """
        return -(-x // y)

    def ave(self, a):
        """
        平均を求めます
        :param a: list
        :return: int
        """
        return sum(a) / len(a)

    def gcd(self, x, y):
        if y == 0:
            return x
        else:
            return self.gcd(y, x % y)


"""ここからメインコード"""


def main():
    
    r, e = range, enumerate
    ip = IP()
    id = Idea()

    """この下から書いてね"""
    n, m, c = ip.IL()
    b = ip.IL()
    
    ans = 0
    for _ in r(n):
        a = np.array(ip.IL())
        if sum(a * b) + c > 0:
            ans += 1
    print(ans)



main()

Solution (Python):

n, m, c = map(int, input().split())
b = list(map(int, input().split()))
a_s = [list(map(int, input().split())) for i in range(n)]

correct = 0
for a in a_s:
    val = c
    for _a, _b in zip(a, b):
        val += _a * _b

    correct += 1 if val > 0 else 0

print(correct)

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
count = 0
for i in range(n):
    ai = list(map(int, input().split()))
    num = 0
    for j in range(len(ai)):
        num += ai[j] * b[j]
    if num + c >0:
        count += 1
print(count)

Solution (Python):
N,M,C=map(int,input().split())
B=list(map(int,input().split()))
A=[list(map(int,input().split())) for i in range(N)]
count=0
for a in A:
    p=0
    for i in range(M):
        p+=a[i]*B[i]
    p+=C
    if p>0:count+=1
print(count)

Solution (Python):
n,m,c=map(int,input().split())
b=[int(i) for i in input().split()]
a=[]
ans=0
for i in range(n):
    a=[int(j) for j in input().split()]
    p=c
    for k in range(m):
        p+=a[k]*b[k]
    if p>0:
        ans+=1
    
print(ans)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
ans = 0
for i in range(N):
    A = list(map(int, input().split()))
    n = 0
    for j in range(M):
        n += A[j] * B[j]
    if n + C > 0: ans += 1
print(ans)

Solution (Python):
N, M, C = map(int, input().rstrip().split(' '))
B = list(map(int, input().rstrip().split(' ')))

count = 0
for _ in range(N):
    A = list(map(int, input().rstrip().split(' ')))
    sum = C
    for x1, x2 in zip(A, B):
        sum += x1 * x2
    
    if sum > 0:
        count += 1
        
print(count)

Solution (Python):
N, M, C = map(int, input().split())
b_list = list(map(int, input().split()))

a_list = [list(map(int, input().split())) for _ in range(N)]

ans = 0
for a_ in a_list:
    pro = 0
    for a, b in zip(a_,b_list):
        pro += a * b
    if pro+C >0:
        ans += 1
    
print(ans)

Solution (Python):
n,m,c=map(int,input().split())
B=list(map(int,input().split()))
ans=0
for _ in range(n):
    A=list(map(int,input().split()))
    cnt=0
    for i in range(m):
        cnt+=A[i]*B[i]
    if cnt+c>0:
        ans+=1
print(ans)

Solution (Python):
n,m,c = list(map(int,input().split()))
a = list(map(int,input().split()))

su = 0
co = 0
for i in range(n):
    b = list(map(int,input().split()))
    for j in range(m):
        co += a[j]*b[j]
    if co + c > 0:
        su += 1
    co = 0
print(su)

Solution (Python):
N, M, C = [int(i) for i in input().split()]
B = [int(i) for i in input().split()]
A = []

for i in range(0, N):
    A.append([int(i) for i in input().split()])

count = 0

for a in A:
    result = C
    for i in range(0, M):
        result += a[i] * B[i]
    if result > 0:
        count += 1

print(count)

Solution (Python):
n, m, c = map(int, input().split())
blist = list(map(int, input().split()))
ans = 0
for i in range(n):
  alist = list(map(int, input().split()))
  score = 0
  for j in range(m):
    score += alist[j] * blist[j]
  score += c
  if (score > 0):
    ans += 1
print(ans)

Solution (Python):
n,m,c = map(int,input().split())
b = list(map(int,input().split()))
ans = 0
for i in range(n):
    num = c
    lis = list(map(int,input().split()))
    for j in range(m):
        num += b[j] * lis[j]
    if num > 0:ans += 1
print(ans)

Solution (Python):
import numpy as np
N,M,C = map(int,input().split())
B = np.array(list(map(int,input().split())))
count=0
for i in range(N):
	A = np.array(list(map(int,input().split())))
	if np.dot(A,B)+C>0:
		count+=1
print(count)

Solution (Python):
import collections
import itertools
import numpy as np
import sys
def IL(): return list(map(int,input().split()))
def SL(): return input().split()
def I(): return int(sys.stdin.readline())
def S(): return input()

N,M,C = IL()
B = IL()
A = [IL() for i in range(N)]

arB = np.array(B)

cnt = 0
for i in range(N):
    arA = np.array(A[i])
    tmp = np.sum(arA*arB)
    if tmp+C > 0:
        cnt += 1
print(cnt)

Solution (Python):

import numpy as np
def inpl(): return list(map(int, input().split()))

N, M, C = inpl()
B = np.array(inpl(), dtype=np.int64).reshape(1, -1)
A = np.zeros((N, M), dtype=np.int64)

for i in range(N):
    A[i] = inpl()

print(((A*B).sum(axis=1) + C >0).sum())

Solution (Python):
N,M,C = map(int,input().split())
Als = []
Bls = []

B = input().split(" ")

for b in B:
  Bls.append(int(b))

for n in range(0,N):
  app = []
  A = input().split(" ")
  for a in A:
    app.append(int(a))

  Als.append(app)


count = 0

for a in Als:
  sm = 0
  for m in range(0,M):
    sm += int(a[m])*int(Bls[m])
  sm += C

  if sm>0:
    count += 1

print(count)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
A = [list(map(int, input().split())) for _ in range(N)]

ans = 0
for i in range(N):
    a = A[i]
    tmp = C
    for j in range(M):
        tmp += a[j] * B[j]
    if tmp > 0:
        ans += 1
print(ans)

Solution (Python):
n,m,c=map(int,input().split())
B=list(map(int,input().split()))
A=[list(map(int,input().split()))for i in range(n)]
cnt=0
for i in range(n):
    ans=0
    for j in range(m):
        ans+=B[j]*A[i][j]
    ans+=c
    if 0<ans:
        cnt+=1
print(cnt)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
ans = 0
for _ in range(N):
    A = list(map(int, input().split()))
    if sum(a*b for a,b in zip(A,B))+C > 0:
        ans += 1

print(ans)

Solution (Python):
def solve(n, m, c, bs, mat_a):
    res = 0
    for i in range(n):
        score = c + sum(mat_a[i][j] * bs[j] for j in range(m))
        res += score > 0
    return res


def main():
    n, m, c = (int(z) for z in input().split())
    bs = [int(z) for z in input().split()]
    mat_a = [[int(z) for z in input().split()] for _ in range(n)]
    res = solve(n, m, c, bs, mat_a)
    print(res)


if __name__ == "__main__":
    main()

Solution (Python):
N, M, C = (int(i) for i in input().split())

B = [int(i) for i in input().split()]
A = []
for i in range(N):
    A.append([int(i) for i in input().split()])


counter =0
for i in range(N):
    ans = C
    for j in range(M):
        ans += A[i][j]*B[j]

    if(ans>0):
        counter+=1

print(counter)

Solution (Python):
N, M, C = map(int, input().split())
B = [int(i) for i in input().split()]
A = [[int(i) for i in input().split()] for j in range(N)]
cnt = 0
for listA in A:
    ans = [x * y for (x, y) in zip(listA, B)]
    if sum(ans) + C > 0:
        cnt += 1

print(cnt)

Solution (Python):
N, M, C = map(int, input().split())
B = [int(i) for i in input().split()]
A = [[int(i) for i in input().split()] for i in range(N)]
ans = 0
for i in range(N):
    sum = 0
    for j in range(M):
        sum += A[i][j] * B[j]
    if sum + C > 0:
        ans += 1
print(ans)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
c = 0
for i in range(N):
    A = list(map(int, input().split()))
    p = sum([A[i]*B[i] for i in range(M)]) + C
    if p > 0:
        c += 1
print(c)

Solution (Python):

n,m,c = map(int,raw_input().strip().split())

br = list(map(int,raw_input().strip().split()))

arr = []

for i in range(n):
    arr.append(list(map(int,raw_input().strip().split())))

ans = 0
for i in range(n):
    val = 0
    for j in range(m):
        val+=arr[i][j]*br[j]
    val+=c
    
    if val>0:
        ans+=1
print(ans)

Solution (Python):
n = input().split()
N = int(n[0])
M = int(n[1])
C = int(n[2])

B = input().split()

tmp = 0
for i in range(N):
    A = input().split()
    ans = 0
    for j in range(M):
        ans += int(B[j])*int(A[j])
    ans += C
    if ans > 0:
        tmp += 1

print(str(tmp))

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
ans = 0

for _ in range(n):
    a = list(map(int, input().split()))
    value = c
    for i in range(m):
        value += a[i]*b[i]
    if value > 0:
        ans += 1

print(ans)

Solution (Python):
N, M, C = list(map(int, input().split()))
B = list(map(int, input().split()))
num = 0
for i in range(0,N):
    A = list(map(int, input().split()))
    sum = 0
    for i in range(0,M):
        sum += A[i] * B[i]
    if sum + C > 0:
        num += 1
print(num)

Solution (Python):
N,M,C=map(int,input().split())
B=list(map(int,input().split()))
ans=0
tmp=0
for i in range(N):
    A=list(map(int,input().split()))
    tmp=0
    for a,b in zip(A,B):
        tmp+=a*b
    tmp+=C
    if tmp>0:
        ans+=1
print(ans)

Solution (Python):

import copy
import numpy as np
import random

n,m,c = map(int,input().split())
B = [int(i) for i in input().split()]
A = []
for i in range(n):
    a = [int(i) for i in input().split()]
    A.append(a)

A = np.array(A)
B = np.array(B)

ans = 0


for i in range(n):
    if np.dot(A[i],B)+c>0:
        ans += 1

print(ans)

Solution (Python):
N,M,C=list(map(int,input().split(" ")))
B=list(map(int,input().split(" ")))
A=[]
for i in range(N):
    A.append(list(map(int,input().split(" "))))
c=0
for it in A:
    s=0
    for i,its in enumerate(it):
        s+=B[i]*its
    if s+C>0:
        c+=1

print(c)

Solution (Python):
N,M,C = map(int,input().split())
B = list(map(int,input().split()))
A = [list(map(int,input().split())) for i in range(N)]

ans = 0

for i in range(N):
    ANS = []
    for j in range(M):
        ANS.append(A[i][j] * B[j])
    if sum(ANS)+C > 0:
       ans += 1

print(ans)

Solution (Python):


import math
import numpy as np
import random
import copy
import statistics 
import bisect
import heapq
from collections import defaultdict 

N,M,C = [int(x) for x in input().split()]
B = [int(x) for x in input().split()]
A = []
for _i in range(N):
    A.append([int(x) for x in input().split()])

ans = 0
for a in A:
    sum = 0
    for i in range(len(a)):
        sum += a[i] * B[i]
    sum += C
    if sum > 0:
        ans += 1
print(ans)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))

ans = 0
for i in range(N):
    temp = 0
    Am = list(map(int, input().split()))
    for idx,t in enumerate(Am):
        temp += t*B[idx]
    temp += C
    if temp > 0:
        ans += 1
print(ans)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
A = []
for _ in range(N):
    A.append(list(map(int, input().split())))
count = 0
for i in range(N):
    s = C
    for j in range(M):
        s += A[i][j] * B[j]
    if s > 0:
        count += 1
print(count)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
A = [list(map(int, input().split())) for i in range(N)]

cnt = 0
for i in range(N):
  ans = C
  for j in range(M):
    ans += A[i][j] * B[j]
  if ans > 0:
    cnt += 1
print(cnt)

Solution (Python):
N,M,C = map(int,input().split())
B = list(map(int,input().split()))
ans = 0
for i in range(N):
    A = list(map(int,input().split()))
    tmp = 0
    for j in range(M):
        tmp += A[j]*B[j]
    tmp += C
    if tmp > 0:
        ans += 1
print(ans)

Solution (Python):
N, M, C = [int(s) for s in input().split(' ')]
B = [int(s) for s in input().split(' ')]
solve = 0
for i in range(N):
    A = [int(s) for s in input().split(' ')]
    sum = C
    for j in range(M):
        sum += A[j] * B[j]
    solve += int(sum > 0)
print(solve)

Solution (Python):
n,m,c=map(int,input().split())
b=[int(i) for i in input().split()]
ans=0
for i in range(n):
    a=[int(i) for i in input().split()]
    chk=c
    for  j in range(m):
       chk+=b[j]*a[j]
    if chk>0: ans+=1
print(ans)

Solution (Python):
n,m,c=map(int,input().split())
b=list(map(int,input().split()))
a=[list(map(int,input().split())) for i in range(n)]
count=0
for i in range(n):
    tmp=[a[i][j]*b[j] for j in range(m)]
    if sum(tmp)+c>0:
        count+=1
print(count)

Solution (Python):
N, M, C = list(map(int, input().split()))
B = list(map(int, input().split()))
A = []

cnt = 0
for _ in range(N):
    A = list(map(int, input().split()))
    score = C
    for a, b in zip(A, B):
        score += a*b
    if score > 0:
        cnt += 1

print(cnt)

Solution (Python):
n, m, c = [int(i) for i in input().split()]
Bs = [int(i) for i in input().split()]
ans = 0
for i in range(n):
    As = [int(i) for i in input().split()]
    mul = sum(a * b for a, b in zip(As, Bs))
    ans += 1 if mul + c > 0 else 0
print(ans)

Solution (Python):


N, M, C = list(map(int, input().split()))
B = list(map(int, input().split()))

A = []
for i in range(N):
    A.append(list(map(int, input().split())))


count = 0

for i in range(N):
    sum_ = 0
    for j in range(M):
        sum_ += A[i][j] * B[j]
    sum_ += C

    if sum_ >  0:
        count += 1

print(count)

Solution (Python):
import numpy as np

N,M,C = [int(i) for i in input().split()]
B = np.array([int(i) for i in input().split()])
ans = 0

for i in range(N):
    A = np.array([int(i) for i in input().split()])
    if sum(B*A) + C > 0:
        ans += 1


print(ans)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
A = [input().split() for _ in range(N)]

count = 0
for i in range(N):
    result = 0
    for j in range(M):
        result += int(A[i][j]) * B[j]
    if 0 < result + C:
        count += 1
print(count)

Solution (Python):
N,M,C=list(map(int,input().split()))
B=list(map(int,input().split()))


A=[]
for i in range(N):
    A.append(list(map(int,input().split())))
c=0
for i in range(N):
    res=0
    for a,b in zip(A[i],B):
        res+=a*b
    res+=C
    if(res>0):
        c+=1

print(c)

Solution (Python):
n, m, c = map(int, input().split())
B = list(map(int, input().split()))
A = [list(map(int, input().split())) for _ in range(n)]
ans = 0
for one in A:
    tmp = [x * y for x, y in zip(one, B)]
    if sum(tmp) + c > 0:
        ans += 1
print(ans)

Solution (Python):
n,m,c=map(int,input().split())
arr=[]
arrb=list(map(int,input().split()))

for i in range(n):
	arr1=list(map(int,input().split()))
	arr.append(arr1)
ans=0
for i in range(n):
	count=0
	for j in range(m):
		count+=(arr[i][j]*arrb[j])
	count+=c
	if(count>0):
		ans+=1
print(ans)

Solution (Python):
n, m, c = map(int, input().split())
B = [int(i) for i in input().split()]

ans = 0
for i in range(n):
    tmp = 0
    A = [int(i) for i in input().split()]
    for a, b in zip(A, B):
        tmp += a * b
    if tmp + c > 0:
        ans += 1
        
print(ans)

Solution (Python):
n,m,c = map(int,input().split())
b = list(map(int,input().split()))
k = 0
for _ in [0]*n:
  a = list(map(int,input().split()))
  s = c
  for i in range(m):
    s += a[i]*b[i]
  if s>0:
    k += 1
print(k)

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
a = [list(map(int, input().split())) for _ in range(n)]
collect = 0
for i in range(n):
    ret = c
    for j in range(m):
        ret += a[i][j] * b[j]
    if ret > 0:
        collect += 1
print(collect)

Solution (Python):
N,M,C=map(int,input().split())
B=list(map(int,input().split()))

ans=0

for i in range(N):

    d=0
    a=list(map(int,input().split()))

    for j in range(M):
        
        d += B[j]*a[j]

    if d > -C:

        ans += 1
        
print(ans)