Cod sursa(job #1965364)

Utilizator 3DwArDPauliuc Edward 3DwArD Data 14 aprilie 2017 12:37:35
Problema Lampa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("lampa.in");
ofstream g("lampa.out");
int n,m;
int fibn,fibn1,fibn2;
string s;
void fibbo(int x1,int x2,int pc){
    if(pc==n){
            fibn=x2;
    return;
    }
    if(pc==n-1)fibn1=x2;
    if(pc==n-2)fibn2=x2;
    fibbo(x2,x1+x2,pc+1);
}
bool ver(int na,int nb)
{
   for(int p=0;p<nb;p++)
      if(s[m-p-1]!=s[m-p-1-na-nb]||s[m-p-1]!=s[m-p-1-na-nb-nb]) return 0;
   for(int i=0;i<na;i++)
      if(s[m-nb-1]!=s[m-nb-na-nb-nb-1]) return 0;
   return 1;
}
int main()
{

    f>>n>>m;
    f>>s;
    fibbo(1,1,2);
    int ok=1;
    double length2=0;
    for(length2=m/fibn1;length2>0;length2--){
        double rez1=(m-length2*fibn1)/fibn2;
        if(int(rez1)==double(rez1)){
            int length1=int(rez1);
            int i=1,j=m-length2-length1+1,k=1;
            if(ver(length1,length2)){
            ok=0;
            for(int i=m-length2-length1;i<m-length2;i++) g<<s[i];
            g<<"\n";
            for(int j=m-length2;j<m;j++) g<<s[j];
            break;
            }
        }
    }
    if(ok)g<<0;
    return 0;
}