Pagini recente » Cod sursa (job #525437) | Cod sursa (job #1203586) | Cod sursa (job #235085) | Cod sursa (job #2810351) | Cod sursa (job #784178)
Cod sursa(job #784178)
#include<cstdio>
#include<vector>
#define MAXN 500000
using namespace std;
vector<long long >dif(MAXN);
int n;
FILE *g=fopen("reguli.out","w");
vector<long long > pi(MAXN);
void prefix(int lg)
{
int i,k=0;
pi[1]=0;
for(i=2;i<=lg;i++)
{
while(k && dif[i]!=dif[k+1])
k=pi[k];
if(dif[i]==dif[k+1])
k++;
pi[i]=k;
}
}
int main ()
{
FILE * f=fopen("reguli.in","r");
fscanf(f,"%u",&n);
long long x,y;
int i,lg;
fscanf(f,"%lld",&x);
for(i=1;i<=n;i++)
{
fscanf(f,"%lld",&y);
dif[i]=y-x;
x=y;
}
prefix(n-1);
lg=n-1-pi[n-1];
fprintf(g,"%u %u\n",lg,pi[n-1]);
for(i=1;i<=lg;i++)
return 0;
}