记录编号 |
133486 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[東方S2] 帕秋莉·诺蕾姬 |
最终得分 |
100 |
用户昵称 |
水中音 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.018 s |
提交时间 |
2014-10-28 07:23:42 |
内存使用 |
0.35 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
char s[2010];
int m,i,j,ans1,ans2,wordlen=0;
long long Sum=0,tempsum,magic[2010]={0},w[2010]={0};
inline void init()
{
scanf("%s",s);
scanf("%d",&m);
while(s[wordlen]>='A'&&s[wordlen]<='Z') wordlen++;
wordlen--;
for(i=0,j=wordlen;i<=wordlen;i++,j--) magic[i]=s[j]-65;
}
inline bool prework()
{
w[0]=1;Sum=w[0]*magic[0];
for(i=1;i<=wordlen;i++)
{
w[i]=w[i-1]*26%m;
Sum+=w[i]*magic[i];
}
if(!(Sum%m))return true;
else return false;
}
inline bool changework()
{
for(i=wordlen;i>=0;i--)
for(j=i-1;j>=0;j--)
{
tempsum=Sum-magic[i]*w[i]-magic[j]*w[j];
tempsum+=magic[i]*w[j]+magic[j]*w[i];
if(!(tempsum%m))return true;
}
return false;
}
int main()
{
freopen("patchouli.in","r",stdin);
freopen("patchouli.out","w",stdout);
init();
if(prework())printf("0 0\n");
else
if(changework())
{
ans1=wordlen-i+1;
ans2=wordlen-j+1;
printf("%d %d\n",ans1,ans2);
}
else printf("-1 -1\n");
return 0;
}