Untitled
unknown
plain_text
2 years ago
2.1 kB
5
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...