Submission #58839

#TimeUsernameProblemLanguageResultExecution timeMemory
58839gs18115구간 성분 (KOI15_interval)C++14
38 / 100
200 ms908 KiB
#include<iostream> #include<set> using namespace std; typedef long long LL; set<LL>S; char A[9999],B[9999]; LL Al,Bl,i,j,k; LL H[30]={5333, 9059, 16339, 28183, 46811, 66449, 79139, 99023, 3434983, 32758927, 273598275, 783265898, 2147483647, 8590123453LL, 36072100141LL, 928635896239LL, 2839728935982LL, 92738927398529LL, 273956289356923LL, 239875298375982LL, 3289572893758923LL, 9273487523645628LL, 37598237958232352LL, 82379562375623328LL, 237589237958623293LL, 2387429837598236234LL}; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>A>>B; for(Al=0;A[Al];Al++); for(Bl=0;B[Bl];Bl++); for(i=min(Al,Bl);i>0;i--) { S.clear(); k=0; for(j=0;j<i;j++) k+=H[A[j]-97]; S.insert(k); for(j=0;j<Al-i;j++) { k+=H[A[j+i]-97]-H[A[j]-97]; S.insert(k); } k=0; for(j=0;j<i;j++) k+=H[B[j]-97]; if(S.find(k)!=S.end()) { cout<<i<<endl; return 0; } for(j=0;j<Bl-i;j++) { k+=H[B[j+i]-97]-H[B[j]-97]; if(S.find(k)!=S.end()) { cout<<i<<endl; return 0; } } } cout<<0<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...