Pagini recente » Cod sursa (job #1436048) | Cod sursa (job #1184809) | Cod sursa (job #1113732) | Cod sursa (job #354512) | Cod sursa (job #1474898)
#include <fstream>
#include <vector>
using namespace std;
int find_longest(const vector<long long>& v){
const int n = v.size();
vector<int> pi(n, 0);
for(int i = 1; i < n; ++i){
for(pi[i] = pi[i-1];
v[pi[i]] != v[i] && pi[i] > 0;
pi[i] = pi[pi[i]-1]);
if(v[pi[i]] == v[i]){
++pi[i]; } }
return pi.back(); }
int main(){
ifstream f("reguli.in");
ofstream g("reguli.out");
int n;
f >> n;
vector<long long> delte(n-1);
{
long long x_vechi;
f >> x_vechi;
for(int i = 1, x; i < n; ++i){
f >> x;
delte[i-1] = x-x_vechi;
x_vechi = x; } }
const int lung_perioada = delte.size() - find_longest(delte);
g << lung_perioada << '\n';
for(int i = 0; i < lung_perioada; ++i){
g << delte[i] << '\n'; }
return 0; }