Cod sursa(job #1965337)

Utilizator 3DwArDPauliuc Edward 3DwArD Data 14 aprilie 2017 12:14:08
Problema Lampa Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 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;
    for(int length2=1;ok,length2<=m/fibn2;length2++){
        int length1=(m-fibn1*length2)/fibn2;
        if(length1*fibn2==m-fibn1*length2){
            int i=1,j=m-length2-length1+1,k=1;
            if(ver(length1,length2)){
            ok=0;
            if(n%2==0)for(int i=length2;i<length2+length1;i++,k++)g<<s[i];
            else
                for(int i=0;i<length1;i++)g<<s[i];
            g<<"\n";
            for(int i=m-length2;i<m;i++,k++)g<<s[i];
            }
        }
    }
    return 0;
}