Pagini recente » Cod sursa (job #963275) | Cod sursa (job #695229) | Cod sursa (job #2491262) | Cod sursa (job #2520811) | Cod sursa (job #2426787)
#include <bits/stdc++.h>
#define all(cont) cont.begin(), cont.end()
#define pb push_back
#define fi first
#define se second
#define DEBUG(x) cerr << (#x) << ": " << (x) << '\n'
using namespace std;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef long long ll;
typedef unsigned long long ull;
template<class T> bool uin(T &a, T b) {return (a < b ? false : (a = b, true));}
template<class T> bool uax(T &a, T b) {return (a > b ? false : (a = b, true));}
ifstream f("reguli.in");
ofstream g("reguli.out");
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
#ifdef LOCAL_DEFINE
freopen(".in", "r", stdin);
#endif
int n;
f >> n;
vector<long long> x(n);
for (auto &val : x) {
f >> val;
}
vector<long long> a(n);
for (int i = 1; i < n; ++i) {
a[i] = x[i] - x[i - 1];
}
vector<int> pi(n);
pi[1] = 0;
int k = 0;
for (int i = 2; i < n; ++i) {
while (k && a[k + 1] != a[i]) {
k = pi[k];
}
if (a[k + 1] == a[i]) {
++k;
}
pi[i] = k;
}
k = n - k - 1;
g << k;
for (int i = 1; i <= k; ++i) {
g << '\n' << a[i];
}
g << endl;
f.close();
g.close();
#ifdef LOCAL_DEFINE
cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}