比赛 |
NOIP模拟赛by mzx Day2 |
评测结果 |
WAWWWAWEEE |
题目名称 |
拯救紫萱学姐 |
最终得分 |
20 |
用户昵称 |
PorterCass·D·Ace |
运行时间 |
2.930 s |
代码语言 |
C++ |
内存使用 |
0.37 MiB |
提交时间 |
2016-10-20 21:49:01 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<utility>
using namespace std;
string str1,str2;
bool temp=1;
int n,m;
long long minn=0;
int a,b;
int numa=0,numb=0;
string qian[6000]={},hou[6000]={};
string qian1[6000]={},hou1[6000]={};
void init1(string* x,string s,int length)
{
for(int i=1;i<=length;i++)
for(int j=0;j<i;j++)
x[i]+=s[j];
}
void init2(string* x,string s,int length)
{
for(int i=1;i<=length;i++)
{
string ss;
for(int j=length-1;j>length-i-1;j--)
ss+=s[j];
string sss(ss.rbegin(),ss.rend());
x[i]=sss;
}
}
int main()
{
freopen("savemzx.in","r",stdin);
freopen("savemzx.out","w",stdout);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
cin>>str1;
n=str1.size();
m=n-1;
char c=str1[n-1];
str2=str1.erase(n-1,1);
str1+=c;
init1(qian,str1,n);
init2(hou,str1,n);
for(int i=1;i<=n+1;i++)
{
for(int j=1;j<=n+1;j++)
if(qian[i]==hou[j])
{
a=qian[i].size();
temp=0;
break;
}
if(!temp) break;
}
numa=(n-a)*(n-a)+a*a;
temp=1;
init1(qian1,str2,m);
init2(hou1,str2,m);
for(int i=1;i<=m+1;i++)
{
for(int j=1;j<=m+1;j++)
if(qian1[i]==hou1[i])
{
b=qian1[i].size();
temp=0;
break;
}
if(!temp) break;
}
numb=(m-b)*(m-b)+b*b;
minn=numa+numb;
cout<<minn<<endl;
return 0;
}