CCF-CSP-202006-2-희소 벡터
9774 단어 CCF
다음 코드는 모두 60분, 시간 초과입니다.나는 데이터만 읽는 코드로 바꿨는데 제출한 후에도 2초가 넘게 걸렸으니 어쩐지 시간이 초과되었더라니.
java 코드
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a = sc.nextInt();
int b = sc.nextInt();
int ans = 0;
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < a; i++) {
int idx = sc.nextInt();
int val = sc.nextInt();
map.put(idx, val);
}
for (int i = 0; i < b; i++) {
int idx = sc.nextInt();
int val = sc.nextInt();
if (map.containsKey(idx))
ans += map.get(idx) * val;
}
System.out.println(ans);
}
}
python 코드
n, a, b = map(int, input().split())
d, ans = {}, 0
for i in range(a):
idx, val = map(int, input().split())
d[idx] = val
for i in range(b):
idx, val = map(int, input().split())
if idx in d:
ans += d[idx] * val
print(ans)
# 10 3 4
# 4 5
# 7 -3
# 10 1
# 1 10
# 4 20
# 5 30
# 7 40