# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
245143 | urd05 | 구간 성분 (KOI15_interval) | C++14 | 402 ms | 106232 KiB |
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 <bits/stdc++.h>
using namespace std;
struct Save {
long long cnt[6];
};
void add(Save* one,char x) {
int pos=(x-'a')/5;
long long gop=1;
for(int i=0;i<(x-'a')%5;i++) {
gop*=1600;
}
(*one).cnt[pos]+=gop;
}
bool comp(Save a,Save b) {
for(int i=0;i<6;i++) {
if (a.cnt[i]<b.cnt[i]) {
return true;
}
if (a.cnt[i]>b.cnt[i]) {
return false;
}
}
return false;
}
char a[1501];
char b[1501];
vector<Save> ain[1501];
vector<Save> bin[1501];
int main(void) {
int n,m;
scanf("%s\n",a);
scanf("%s",b);
n=strlen(a);
m=strlen(b);
for(int i=1;i<=n;i++) {
ain[i].reserve(n+1-i);
}
for(int i=1;i<=m;i++) {
bin[i].reserve(m+1-i);
}
for(int i=0;i<n;i++) {
Save just;
memset(just.cnt,0,sizeof(just.cnt));
for(int j=i;j<n;j++) {
add(&just,a[j]);
ain[j-i+1].push_back(just);
}
}
for(int i=0;i<m;i++) {
Save just;
memset(just.cnt,0,sizeof(just.cnt));
for(int j=i;j<m;j++) {
add(&just,b[j]);
bin[j-i+1].push_back(just);
}
}
for(int i=n;i>0;i--) {
sort(ain[i].begin(),ain[i].begin()+n+1-i,comp);
}
for(int i=m;i>0;i--) {
sort(bin[i].begin(),bin[i].begin()+m+1-i,comp);
}
for(int i=min(n,m);i>0;i--) {
int asz=n+1-i;
int bsz=m+1-i;
int aind=0;
int bind=0;
while (aind<asz&&bind<bsz) {
if (!comp(ain[i][aind],bin[i][bind])&&!comp(bin[i][bind],ain[i][aind])) {
printf("%d",i);
return 0;
}
if (comp(ain[i][aind],bin[i][bind])) {
aind++;
}
else {
bind++;
}
}
}
printf("0");
}
Compilation message (stderr)
# | 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... |