# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
71198 | 2018-08-24T08:07:51 Z | vanogam | 구간 성분 (KOI15_interval) | C++14 | 1000 ms | 47192 KB |
#include<bits/stdc++.h> #pragma GCC optimize ("Ofast") using namespace std; long long s,d[30],f,g,h,j,k,mod=1ll<<48ll-1,mar=1507; int i,a,l,n,m; string x,z; unordered_set<long long> q[1502]; main(){ //ios::sync_with_stdio(0); d[0]=1;//cout<<mod; for(i=1;i<30;i++){ d[i]=(d[i-1]*mar)%mod; } //srand(time(0)); char c; while((c=getchar())!='\n') x+=c; while((c=getchar())!='\n') z+=c; //if(x.size()>z.size()) swap(x,z); //cout<<"*"<<x<<" "<<z<<"*"; n=x.size(); for(i=0;i<x.size();i++) x[i]-='a'; for(i=0;i<z.size();i++) {z[i]-='a';} //random_shuffle(f,f+z.size()); for(i=0;i<n;i++){ h=0; for(a=i;a<n;a++){ h+=d[x[a]]; h^=mod; q[a-i].insert(h); } } m=z.size(); for(i=0;i<m;i++){ h=0;//cout<<i<<" "; //f=min(z.size(),i+x.size()); for(a=i;a<m;a++){ //if(a>i+x.size()) break; h+=d[z[a]]; h^=mod; if(l<a-i+1 && q[a-i].find(h)!=q[a-i].end()) l=a-i+1; } } cout<<l; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 376 KB | Output is correct |
2 | Correct | 3 ms | 616 KB | Output is correct |
3 | Correct | 3 ms | 616 KB | Output is correct |
4 | Correct | 4 ms | 700 KB | Output is correct |
5 | Correct | 5 ms | 744 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 47 ms | 3976 KB | Output is correct |
2 | Correct | 58 ms | 5448 KB | Output is correct |
3 | Correct | 7 ms | 5448 KB | Output is correct |
4 | Correct | 6 ms | 5448 KB | Output is correct |
5 | Correct | 72 ms | 5920 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 470 ms | 22116 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 123 ms | 22116 KB | Output is correct |
2 | Execution timed out | 1071 ms | 47192 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |