Cod sursa(job #2639425)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 2 august 2020 00:45:11
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("reguli.in");
ofstream fout ("reguli.out");
long long dif [500003];
long long v [500003];
int n, p [500003], X;
int main (){
  fin >> n;
  for (int i = 1; i <= n; ++ i)
    fin >> v [i];
  for (int i = 1; i < n; ++ i)
    dif [i] = v [i + 1] - v [i];
  for (int i = 2; i < n; ++ i){
    while (X != 0 && dif [X + 1] != dif [i])
      X = p [X];
    if (dif [X + 1] == dif [i])++ X;
    p [i] = X;
  }
  int ans = n - p [n - 1] - 1;
  fout << ans << '\n';
  for (int i = 1; i <= ans; ++ i)
    fout << dif [i] << '\n';
  return 0;
}