Submission #1688787
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int N=210000;
#define ll long long
char s[N];
ll L,R;
int nex[N];
ll len[210];
struct node
{
ll a[26];
void init(int x)
{
for(int i=1;i<=x;i++)
a[s[i]-'a']++;
}
friend node operator + (const node &r1,const node &r2)
{
node ret;
for(int i=0;i<26;i++)
ret.a[i]=r1.a[i]+r2.a[i];
return ret;
}
friend node operator - (const node &r1,const node &r2)
{
node ret;
for(int i=0;i<26;i++)
ret.a[i]=r1.a[i]-r2.a[i];
return ret;
}
void print()
{
for(int i=0;i<26;i++)
printf("%lld ",a[i]);
puts("");
}
}v[210];
node calc(ll x)
{
int p;
for(p=1;;p++)
if(len[p]>=x)break;
node ret,t;
memset(&ret,0,sizeof(ret));
memset(&t,0,sizeof(t));
for(;p>=1;p--)
if(len[p]<=x)
{
ret=ret+v[p];
x-=len[p];
}
t.init(x);
ret=ret+t;
return ret;
}
int main()
{
//freopen("tt.in","r",stdin);
scanf("%s%lld%lld",s+1,&L,&R);
len[2]=strlen(s+1)/2;
nex[1]=0;
for(int i=2,j=0;i<=len[2];i++)
{
while(j&&s[j+1]!=s[i])
j=nex[j];
if(s[j+1]==s[i])j++;
nex[i]=j;
}
len[1]=len[2]-nex[len[2]];
v[1].init(len[1]);
v[2].init(len[2]);
for(int i=3;;i++)
{
len[i]=len[i-1]+len[i-2];
v[i]=v[i-1]+v[i-2];
if(len[i]>=R)break;
}
(calc(R)-calc(L-1)).print();
return 0;
}
Submission Info
Submission Time
2017-10-16 19:32:33+0900
Task
F - SS
User
szy20140355
Language
C++14 (GCC 5.4.1)
Score
1100
Code Size
1343 Byte
Status
AC
Exec Time
3 ms
Memory
896 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:59:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%s%lld%lld",s+1,&L,&R);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
1100 / 1100
Status
Set Name
Test Cases
Sample
sample1.txt, sample2.txt, sample3.txt
All
mx_100000_1_0.txt, rnd_6_16666_4.txt, rnd_7777_1_0.txt, rnd_7777_1_2289.txt, rnd_7777_1_6444.txt, rnd_7777_9_0.txt, rnd_7777_9_1542.txt, rnd_7777_9_2299.txt, rnd_77_1_0.txt, rnd_77_1_14.txt, rnd_77_1_2.txt, rnd_77_9_0.txt, rnd_77_9_11.txt, rnd_77_9_54.txt, rnd_7_1_0.txt, rnd_7_1_2.txt, rnd_7_1_3.txt, rnd_7_9_0.txt, rnd_7_9_1.txt, rnd_7_9_2.txt, rndmx_100000_1_0.txt, sample1.txt, sample2.txt, sample3.txt
Case Name
Status
Exec Time
Memory
mx_100000_1_0.txt
AC
3 ms
896 KB
rnd_6_16666_4.txt
AC
2 ms
896 KB
rnd_7777_1_0.txt
AC
1 ms
256 KB
rnd_7777_1_2289.txt
AC
1 ms
384 KB
rnd_7777_1_6444.txt
AC
1 ms
384 KB
rnd_7777_9_0.txt
AC
2 ms
640 KB
rnd_7777_9_1542.txt
AC
2 ms
640 KB
rnd_7777_9_2299.txt
AC
2 ms
640 KB
rnd_77_1_0.txt
AC
1 ms
256 KB
rnd_77_1_14.txt
AC
1 ms
256 KB
rnd_77_1_2.txt
AC
1 ms
256 KB
rnd_77_9_0.txt
AC
1 ms
256 KB
rnd_77_9_11.txt
AC
1 ms
256 KB
rnd_77_9_54.txt
AC
1 ms
256 KB
rnd_7_1_0.txt
AC
1 ms
256 KB
rnd_7_1_2.txt
AC
1 ms
256 KB
rnd_7_1_3.txt
AC
1 ms
256 KB
rnd_7_9_0.txt
AC
1 ms
256 KB
rnd_7_9_1.txt
AC
1 ms
256 KB
rnd_7_9_2.txt
AC
1 ms
256 KB
rndmx_100000_1_0.txt
AC
2 ms
896 KB
sample1.txt
AC
1 ms
256 KB
sample2.txt
AC
1 ms
256 KB
sample3.txt
AC
1 ms
256 KB