Algorithm/SW Expert Academy
1959. 두 개의 숫자열
히욤이
2019. 3. 2. 01:13
1959. 두 개의 숫자열
* 문제의 저작권은 SW Expert에 있습니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringTokenizer st; for (int test_case = 1; test_case <=T; test_case++) { int sum = 0; st = new StringTokenizer(br.readLine()); int[] N = new int[Integer.parseInt(st.nextToken())]; int[] M = new int[Integer.parseInt(st.nextToken())]; st = new StringTokenizer(br.readLine()); for (int i = 0; i < N.length; i++) { N[i] = Integer.parseInt(st.nextToken()); } st = new StringTokenizer(br.readLine()); for (int i = 0; i < M.length; i++) { M[i] = Integer.parseInt(st.nextToken()); } int max = 0; if (M.length>N.length) { for (int i = 0; i < M.length-N.length+1; i++) { sum = 0; for (int j = 0; j < N.length; j++) { sum = sum + (N[j]*M[i+j]); } if (sum > max) { max = sum; } } } else if (M.length<N.length) { for (int i = 0; i < N.length-M.length+1; i++) { sum = 0; for (int j = 0; j < M.length; j++) { sum = sum + (M[j]*N[i+j]); } if (sum > max) { max = sum; } } } System.out.println("#"+test_case + " " + max); } } | cs |