이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;
int n,m,res;
char arr1[1510],arr2[1510];
vector<int> vt(26);
set <vector <int> > st;
void vector_init(){
int i;
for(i=0;i<26;i++) vt[i]=0;
}
void init(int a){
int i;
for(i=0;i<a;i++) vt[arr1[i]-'a']++; st.insert(vt);
for(;i<n;i++){
vt[arr1[i]-'a']++; vt[arr1[i-a]-'a']--; st.insert(vt);
}
}
void iscan(int a){
int i;
for(i=0;i<a;i++) vt[arr2[i]-'a']++; if(st.find(vt)!=st.end()){ res=a; return; }
for(;i<m;i++){
vt[arr2[i]-'a']++; vt[arr2[i-a]-'a']--;
if(st.find(vt)!=st.end()){ res=a; return; }
}
}
int main(){
int i,j;
scanf("%s %s",arr1,arr2); n=strlen(arr1); m=strlen(arr2);
for(i=1;i<=min(n,m);i++){
init(i); vector_init();
iscan(i); vector_init();
st.clear();
}
printf("%d",res);
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |