Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package seq;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Boolean exit = false;
- Scanner sc = new Scanner(System.in);
- Boolean encountered;
- Integer n, x0, ni;
- List<Integer> seq, dif, g1, g2;
- while (!exit) {
- n = Integer.parseInt(sc.nextLine());
- if (n == 0) {
- exit = true;
- } else {
- //Parse input array
- seq = new ArrayList<>();
- for (String x: sc.nextLine().split(" ")) {
- seq.add(Integer.parseInt(x));
- }
- //Calculate differential array
- x0 = 0;
- dif = new ArrayList<>();
- for (Integer i = 1; i < seq.size(); i++) {
- Integer x = seq.get(i);
- dif.add(x - x0);
- x0 = x;
- }
- //Start seeking for the sequence
- ni = dif.size() / 2;
- g1 = new ArrayList<>();
- g2 = new ArrayList<>();
- encountered = false;
- for (; ni > 1; ni--) {
- g1 = dif.subList(0, ni);
- g2 = dif.subList(ni, 2 * ni);
- if (g1.equals(g2)) {
- encountered = true;
- break;
- }
- }
- if (encountered) {
- Integer lastNumber = seq.get(seq.size() - 1);
- Integer addition = dif.get(dif.size() % ni);
- System.out.println(lastNumber + addition);
- }
- }
- }
- sc.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement