Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Zd15 {
- public static void main(String[] args) {
- long timestart=System.currentTimeMillis();
- Scanner sc = new Scanner(System.in);
- int k = sc.nextInt();
- String s = sc.next();
- int[] a = stringToBig(s);
- for (int i = 0; i < k-1; i++) {
- String c = sc.next();
- int[] b = stringToBig(c);
- a=proizv(a,b);
- }
- long timeend=System.currentTimeMillis() ;
- System.out.println("THIS TIME "+ (timeend-timestart));
- out(a);
- }
- public static int[] stringToBig(String c){
- int[] b = new int[c.length()];//остальные члены
- for (int j = 0; j < c.length(); j++) {
- b[j] = (c.charAt(j)- '0');
- }
- return b;
- }
- public static int[] proizv(int[] a, int[] b) {
- int[] c = new int[a.length + b.length];
- boolean used[] = new boolean[c.length];
- for(int i = a.length - 1;i >= 0; i--) {
- for (int j = b.length - 1; j >= 0; j--) {
- c[i + j] += a[i] * b[j];
- c[i+j+1]= c[i+j]/10;
- c[i+j]%=10;
- used[(i + j)] = true;
- }
- }
- if (!used[c.length - 1] && c[0] / 10 == 0){
- int[] tmp = c;
- c = new int[c.length - 1];
- for (int k = 0; k < c.length; k++)
- c[k] = tmp[k];
- }
- int d = 0;
- if (c[0] / 10 > 0){
- for (int k = c.length - 1; k > 0; k--)
- c[k] = c[k - 1];
- c[0] = 0;
- }
- return c;
- }
- public static void out(int[] a) {
- System.out.println();
- for (int val : a) {
- System.out.print(val);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement