Submission #999008

#TimeUsernameProblemLanguageResultExecution timeMemory
999008vjudge1Trener (COCI20_trener)C++17
0 / 110
5 ms708 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int h = 569, mod = 1LL<<40, md = 1e9 + 7; signed main() { int n,k; cin>>n>>k; map<int,int> ans; int fin_ans=0,iv = (md+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%=md; if (hs[0]==hs[1]) x=iv*x%md; 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%=md; } cout<<fin_ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...