Cod sursa(job #2189697)
| Utilizator | Data | 28 martie 2018 20:46:56 | |
|---|---|---|---|
| Problema | Reguli | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
int n,i,j,s,t[500004];
long long z,x,y,nr[500004];
int main()
{
ifstream fin("reguli.in");
ofstream fout("reguli.out");
fin>>n;
fin>>y>>x;
nr[1]=x-y;
int k=0;
for (i=3;i<=n;i++)
{
fin>>y;
z=y-x;
nr[i-1]=z;
while (k>0 && nr[k+1]!=nr[i-1]) k=t[k];
if (nr[k+1]==nr[i-1]) k++;
t[i]=k;
x=y;
}
n--;
//if (k>=n/2+n%2) fout<<n-k; else fout<<n;
fout<<n-k;
return 0;
}
