This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <set>
using namespace std;
char t[2][1510];
int main(){
	int sz[2];
	for(int i=0;i<2;i++){
		scanf("%s",t[i]);
		sz[i]=strlen(t[i]);
	}
	int n=min(sz[0],sz[1]);
	for(int i=n;i>0;i--){
		vector<char> s(30);
		set<vector<char>> S;
		for(int j=0;j<i;j++){
			s[t[0][j]-'a']++;
		}
		S.insert(s);
		for(int j=0;j<sz[0]-i;j++){
			s[t[0][j]-'a']--;
			s[t[0][j+i]-'a']++;
			S.insert(s);
		}
		s=vector<char>(30);
		for(int j=0;j<i;j++){
			s[t[1][j]-'a']++;
		}
		if(S.find(s)!=S.end()){
				printf("%d\n",i);
				return 0;
		}
		for(int j=0;j<sz[1]-i;j++){
			s[t[1][j]-'a']--;
			s[t[1][j+i]-'a']++;
			if(S.find(s)!=S.end()){
				printf("%d\n",i);
				return 0;
			}
		}
	}
	puts("0");
	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... |