QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#21575#2840. 绿绿与串串s8194272#WA 3ms5780kbC++141.7kb2022-03-07 15:18:562022-05-08 03:39:26

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-05-08 03:39:26]
  • 评测
  • 测评结果:WA
  • 用时:3ms
  • 内存:5780kb
  • [2022-03-07 15:18:56]
  • 提交

answer

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<bitset>
#include<cmath>
#include<ctime>
#include<queue>
#include<map>
#include<set>

#define fi first
#define se second
#define max Max
#define min Min
#define abs Abs
#define lc (x<<1)
#define rc (x<<1|1)
#define pb(x) push_back(x)
#define lowbit(x) (x&(-x))
#define fan(x) (((x-1)^1)+1)
#define mp(x,y) make_pair(x,y)
#define clr(f,n) memset(f,0,sizeof(int)*(n))
#define cpy(f,g,n) memcpy(f,g,sizeof(int)*(n))
#define INF 0x3f3f3f3f

using namespace std;

inline int read()
{
	int ans=0,f=1;
	char c=getchar();
	while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();}
	while(c>='0'&&c<='9'){ans=(ans<<1)+(ans<<3)+c-'0';c=getchar();}
	return ans*f;
}

inline void write(int x)
{
	if(x<0) putchar('-'),x=-x;
	if(x/10) write(x/10);
	putchar((char)(x%10)+'0');
}

template<typename T>inline T Abs(T a){return a>0?a:-a;};
template<typename T,typename TT>inline T Min(T a,TT b){return a<b?a:b;}
template<typename T,typename TT> inline T Max(T a,TT b){return a<b?b:a;}

const int N=1e6+5;
int t,n,len[N],tg[N],ans,maxr,mid;
char s[N];

signed main()
{
	t=read();
	while(t--)
	{
		scanf("%s",s+1);
		n=strlen(s+1);
		mid=maxr=0;
		for(int i=1;i<=n;++i)
		{
			if(i>=mid&&i<=maxr)
				len[i]=min(len[(mid<<1)-i],maxr-i+1);
			while(s[i-len[i]]==s[i+len[i]]) len[i]++;
			if(i+len[i]-1>maxr)
			{
				maxr=i+len[i]-1;
				mid=i;
			}
		}
		for(int i=n;i>=1;--i)
			if(i+len[i]-1>=n)
				tg[i]=1;
			else if(i==len[i])
			{
				if(tg[i+len[i]-1])
					tg[i]=1;
				else tg[i]=0;
			}
			else tg[i]=0;
		for(int i=1;i<=n;++i)
			if(tg[i]) write(i),putchar(' ');
		puts("");
		for(int i=1;i<=n;++i)
			s[i]='\0';
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 3ms
memory: 5780kb

input:

7
abcdcb
qwqwq
qaqaqqq
carnation
c
ab
aa

output:

4 6 
2 3 4 5 
6 7 
9 
1 
1 2 
1 2 

result:

wrong answer 6th lines differ - expected: '2', found: '1 2 '