답안 #999009

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
999009 2024-06-15T04:54:30 Z vjudge1 Trener (COCI20_trener) C++17
0 / 110
6 ms 604 KB
#include <bits/stdc++.h>

using namespace std;

#define int long long

const int h = 569, mod = 1e9 + 7;

signed main()
{
	int n,k;
	cin>>n>>k;
	map<int,int> ans;
	int fin_ans=0,iv = (mod+1)/2;
	for (int a=1;a<=n;a++)
		for (int b=0;b<k;b++)
		{
			string s;
			cin>>s;
			if (a==1)
			{
				ans[(int)s[0]]=1;
				continue;
			}
			int hs[2]={},x=0;
			for (int i=0;i<=1;i++)
			{
				for (int j=i;j<a-1+i;j++)
					hs[i]=h*hs[i]+s[j],hs[i]%=mod;
				if (ans.find(hs[i])!=ans.end())
					x+=ans[hs[i]];
			}
			x%=mod;
			if (hs[0]==hs[1])
				x=iv*x%mod;
			int sh=0;
			for (int i=0;i<a;i++)
				sh=h*sh+s[i],sh%=mod;
			ans[sh]=x;
			if (a==n)
				fin_ans+=x,fin_ans%=mod;
		}
	cout<<fin_ans<<endl;
	
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 604 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -