Untitled
unknown
plain_text
3 years ago
2.1 kB
8
Indexable
#include <bits/stdc++.h>
using namespace std;
long long int a, n, b[100005], cnt, maxnr, secv;
vector<long long int> sch;
bool echivalente(long long int x, long long int y){
long long int cx, cy, nrcif1=0, nrcif2=0, nrschimb1=1, nrschimb2=1;
cx=x;
cy=y;
vector <long long int> v1, v2;
while(cx){
v1.push_back(cx%10);
nrcif1++;
cx/=10;
}
while(cy){
v2.push_back(cy%10);
nrcif2++;
cy/=10;
}
if(nrcif1!=nrcif2){
return false;
}
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
while(x){
for(int i=0; i<v1.size(); i++){
if(v1[i]==x%10){
nrschimb1=nrschimb1*10+i;
}
}
x/=10;
}
while(y){
for(int i=0; i<v2.size(); i++){
if(v2[i]==y%10){
nrschimb2=nrschimb2*10+i;
}
}
y/=10;
}
if(nrschimb1==nrschimb2) return true;
return false;
}
int schimbat(long long int x){
long long int cx, nrschimb1=1;
cx=x;
vector <long long int> v1;
while(cx){
v1.push_back(cx%10);
cx/=10;
}
sort(v1.begin(), v1.end());
while(x){
for(int i=0; i<v1.size(); i++){
if(v1[i]==x%10){
nrschimb1=nrschimb1*10+i;
}
}
x/=10;
}
return nrschimb1;
}
int main(){
ifstream fin("forma.in");
ofstream fout("forma.out");
fin>>a;
fin>>n;
for(int i=0; i<n; i++){
fin>>b[i];
if(echivalente(a, b[i])==1){
cnt++;
}
}
fout<<cnt<<endl;
for(int i=0; i<n; i++){
sch.push_back(schimbat(b[i]));
}
sort(sch.begin(), sch.end());
for(int i=0; i<sch.size(); i++){
if(sch[i]==sch[i+1]){
secv++;
}
else{
maxnr=max(maxnr, secv);
secv=0;
}
}
fout<<maxnr+1;
return 0;
}Editor is loading...