Cod sursa(job #1993360)

Utilizator ruxandramateiMatei Ruxandra ruxandramatei Data 22 iunie 2017 19:07:25
Problema Reguli Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("reguli.in");
ofstream out("reguli.out");

int a[500001], n;
//array- valori de baza care dau relatia intre x-urile citite

void rezolvare(){
  int perioada = 1;
  int valSubs = 0;
  int perSol;
  for(int i = 1; i < n; i++){
    if(a[i] == a[i - perioada] && (a[i+1] == a[i + 1 - perioada] || i == n-  1 || valSubs == perioada - 1)){
      valSubs++;
    }
    else{
      valSubs = 0;
      perioada = i;
    }
    if(valSubs == perioada){
      valSubs = 0;
      perSol = perioada;
    }
  }
  out << perioada;
}

void citire(){
  int xAnter, x;
  in >> n;
  in >> xAnter;
  for(int i = 1; i < n; i++){
    in >> x;
    a[i] = x - xAnter;
    xAnter = x;
  }
}

int main(){
  citire();
  rezolvare();
  return 0;
}