枚举开头结尾的字母,枚举ac的个数,总AC个数就是两个Fibonacci数列的和。。。。。

D. New Year Letter
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Many countries have such a New Year or Christmas tradition as writing a letter to Santa including a wish list for presents. Vasya is an ordinary programmer boy. Like all ordinary boys, he is going to write the letter to Santa on the New Year Eve (we Russians actually expect Santa for the New Year, not for Christmas).

Vasya has come up with an algorithm he will follow while writing a letter. First he chooses two strings, s1 anf s2, consisting of uppercase English letters. Then the boy makes string sk, using a recurrent equation sn = sn - 2 + sn - 1, operation '+' means a concatenation (that is, the sequential record) of strings in the given order. Then Vasya writes down string sk on a piece of paper, puts it in the envelope and sends in to Santa.

Vasya is absolutely sure that Santa will bring him the best present if the resulting string sk has exactly x occurrences of substring AC (the short-cut reminds him оf accepted problems). Besides, Vasya decided that string s1 should have length n, and string s2 should have length m. Vasya hasn't decided anything else.

At the moment Vasya's got urgent New Year business, so he asks you to choose two strings for him, s1 and s2 in the required manner. Help Vasya.

Input

The first line contains four integers k, x, n, m (3 ≤ k ≤ 50; 0 ≤ x ≤ 109; 1 ≤ n, m ≤ 100).

Output

In the first line print string s1, consisting of n uppercase English letters. In the second line print string s2, consisting of m uppercase English letters. If there are multiple valid strings, print any of them.

If the required pair of strings doesn't exist, print "Happy new year!" without the quotes.

Sample test(s)
input
3 2 2 2
output
AC
AC
input
3 3 2 2
output
Happy new year!
input
3 0 2 2
output
AA
AA
input
4 3 2 1
output
Happy new year!
input
4 2 2 1
output
Happy new year!
#include <iostream>
#include <cstring>
#include <cstdio> using namespace std; int dp[120];
char sa[12000],sb[12000];
long long int fib[120]; int getMAX(char s,char e,int l)
{
if(l==1)
{
return 0;
}
if(l==2)
{
if(s=='A'&&e=='C') return 1;
else return 0;
}
if(l==3)
{
if(s=='A'||e=='C') return 1;
else return 0;
}
if(l>=4)
{
if(s=='A'&&e=='C') return (l-4)/2+2;
else if((s!='A'&&e=='C')||(s=='A'&&e!='C')) return (l-3)/2+1;
else return (l-2)/2;
}
} long long int getfibK(int a,int b,int x)
{
fib[0]=0;fib[1]=a;fib[2]=b;
for(int i=3;i<=x;i++)
{
fib[i]=fib[i-1]+fib[i-2];
}
if(fib[x]>1e9) return -1;
return fib[x];
} int main()
{
int k,x,n,m;
scanf("%d%d%d%d",&k,&x,&n,&m);
char s1,e1,s2,e2;
for(s1='A';s1<='C';s1++)
{
for(e1='A';e1<='C';e1++)
{
if(n==1&&s1!=e1) continue;
for(s2='A';s2<='C';s2++)
{
for(e2='A';e2<='C';e2++)
{
if(m==1&&s2!=e2) continue;
memset(dp,0,sizeof(dp));
char ls1=s1,le1=e1,ls2=s2,le2=e2;
for(int i=3;i<=k;i++)
{
dp[i]=dp[i-2]+(le1=='A'&&ls2=='C')+dp[i-1];
char ts=ls2;
ls2=ls1;
ls1=ts;le1=le2;
}
long long int tx=dp[k];
if(tx>x) continue;
int MaxS1=getMAX(s1,e1,n),MaxS2=getMAX(s2,e2,m);
for(int i=0;i<=MaxS1;i++)
{
for(int j=0;j<=MaxS2;j++)
{
long long int ty=getfibK(i,j,k);
if(ty<0) continue;
if(tx+ty==(long long int )x)
{
int posA=i,posB=j;
int cnta=1,cntb=1;
sa[0]=s1;sa[n-1]=e1;
sb[0]=s2;sb[m-1]=e2;
if(n!=1)
{
while(posA--)
{
if(cnta==1&&sa[0]=='A')
{
sa[cnta++]='C';
}
else
{
sa[cnta++]='A';
sa[cnta++]='C';
}
}
for(int ck=cnta;ck<n-1;ck++)
{
sa[ck]='B';
}
}
if(m!=1)
{
while(posB--)
{
if(cntb==1&&sb[0]=='A')
{
sb[cntb++]='C';
}
else
{
sb[cntb++]='A';
sb[cntb++]='C';
}
}
for(int ck=cntb;ck<m-1;ck++)
{
sb[ck]='B';
}
}
printf("%s\n",sa);
printf("%s\n",sb);
return 0;
}
}
}
}
}
}
}
printf("Happy new year!\n");
return 0;
}

CodeForces 379 D. New Year Letter的更多相关文章

  1. Codeforces 379 F. New Year Tree

    \(>Codeforces \space 379 F. New Year Tree<\) 题目大意 : 有一棵有 \(4\) 个节点个树,有连边 \((1,2) (1,3) (1,4)\) ...

  2. 【codeforces 379D】New Year Letter

    [题目链接]:http://codeforces.com/contest/379/problem/D [题意] 让你构造出两个长度分别为n和m的字符串s[1]和s[2] 然后按照连接的规则,顺序连接s ...

  3. Codeforces Round #370 - #379 (Div. 2)

    题意: 思路: Codeforces Round #370(Solved: 4 out of 5) A - Memory and Crow 题意:有一个序列,然后对每一个进行ai = bi - bi  ...

  4. codeforces Good Bye 2013 379D New Year Letter

    题目链接:http://codeforces.com/problemset/problem/379/D [题目大意] 告诉你初始字符串S1.S2的长度和递推次数k, 使用类似斐波纳契数列的字符串合并的 ...

  5. Codeforces 379D - New Year Letter

    原题地址:http://codeforces.com/contest/379/problem/D 题目大意:给出一种生成字符串的方法 s[k] = s[k - 2] + s[k - 1],其中加法意为 ...

  6. Codeforces Round #116 (Div. 2, ACM-ICPC Rules) C. Letter 暴力

    C. Letter Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/180/problem/C D ...

  7. Codeforces Beta Round #14 (Div. 2) A. Letter 水题

    A. Letter 题目连接: http://www.codeforces.com/contest/14/problem/A Description A boy Bob likes to draw. ...

  8. Codeforces Round #379 (Div. 2) E. Anton and Tree 缩点 直径

    E. Anton and Tree 题目连接: http://codeforces.com/contest/734/problem/E Description Anton is growing a t ...

  9. Codeforces Round #379 (Div. 2) D. Anton and Chess 水题

    D. Anton and Chess 题目连接: http://codeforces.com/contest/734/problem/D Description Anton likes to play ...

随机推荐

  1. 用JQuery实现表格隔行变色和突出显示当前行

    用JQuery实现表格隔行变色和突出显示当前行 上源码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "htt ...

  2. Spring学习之Ioc控制反转(2)

    开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...

  3. html css float left与 float right的使用说明

    点评: CSS中很多时候会用到浮动来布局,也就是经常见到的float:left或者float:right,简单点来说,前者是左浮动(往左侧向前边的非浮动元素飘,全是飘得元素的话,就按照流式来浮动从左到 ...

  4. Find Minimum in Rotated Sorted Array,Find Minimum in Rotated Sorted ArrayII

    一:Find Minimum in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to yo ...

  5. Delphi 全面控制Windows任务栏

    核心提示:使用Windows95/NT/98操作系统的用户知道:Windows正常启动后,在电脑屏幕下方出现一块 任务栏. 使用Windows95/NT/98操作系统的用户知道:Windows正常启动 ...

  6. CC++初学者编程教程(14) Redhat linux安装Oracle12c

    1选择虚拟机的设置 2 设置共享文件夹 3 使用共享文件夹向导 4 选择主机路径 5 启用文件共享 6 设置好文件共享以后,关闭虚拟机的设置 7 开启虚拟机 8 登陆 9输入密码 10 安装vmwar ...

  7. linux环境开发私房菜

    1,各种linux 平台GUI开发IDE环境 2,C/C++ 好的编译器 gcc/emcs;

  8. linux svn服务器普通passwd和sasl2配置

    朋友昨天问我一个问题,他公司使用的vpn连接的svn,使用svn管理软件进行svn update是可行的,使用命令行svn update出错,svn status可行. 思路1: 刚开始我关注的焦点都 ...

  9. 全国计算机等级考试二级教程-C语言程序设计_第6章_字符型数据

    #include <stdio.h> main() { char c; char d; c = ; d = '; if (c == d) { printf("yes\n" ...

  10. jQuery插件

    1. Lightbox 2:    Lightbox 2 是一款很酷的图片显示插件,可以在一个平滑展开的新窗口中展现出图片,而同时页面的其余部分都变成黑色背景.使用这款插件,是为了当你的的图片过大必须 ...