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
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
AC × 3
AC × 24
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