Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.32 KB | None | 0 0
  1. package seq;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.  
  9.     public static void main(String[] args) {
  10.         Boolean exit = false;
  11.         Scanner sc = new Scanner(System.in);
  12.        
  13.         Boolean encountered;
  14.         Integer n, x0, ni;
  15.         List<Integer> seq, dif, g1, g2;
  16.        
  17.         while (!exit) {
  18.             n = Integer.parseInt(sc.nextLine());
  19.             if (n == 0) {
  20.                 exit = true;
  21.             } else {
  22.                 //Parse input array
  23.                 seq = new ArrayList<>();
  24.                 for (String x: sc.nextLine().split(" ")) {
  25.                     seq.add(Integer.parseInt(x));
  26.                 }
  27.                
  28.                 //Calculate differential array
  29.                 x0 = 0;
  30.                 dif = new ArrayList<>();
  31.                 for (Integer i = 1; i < seq.size(); i++) {
  32.                     Integer x = seq.get(i);
  33.                     dif.add(x - x0);
  34.                     x0 = x;
  35.                 }
  36.                
  37.                 //Start seeking for the sequence
  38.                 ni = dif.size() / 2;
  39.                 g1 = new ArrayList<>();
  40.                 g2 = new ArrayList<>();
  41.                 encountered = false;
  42.                 for (; ni > 1; ni--) {
  43.                     g1 = dif.subList(0, ni);
  44.                     g2 = dif.subList(ni, 2 * ni);
  45.                    
  46.                     if (g1.equals(g2)) {
  47.                         encountered = true;
  48.                         break;
  49.                     }
  50.                 }
  51.                
  52.                 if (encountered) {
  53.                     Integer lastNumber = seq.get(seq.size() - 1);
  54.                     Integer addition = dif.get(dif.size() % ni);
  55.                     System.out.println(lastNumber + addition);
  56.                 }
  57.             }
  58.         }
  59.        
  60.         sc.close();
  61.     }
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement