Cod sursa(job #3258742)

Utilizator LucaMirsolea14Luca Mirsolea LucaMirsolea14 Data 23 noiembrie 2024 15:35:53
Problema Grupuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.36 kb
#include<fstream>
#include<limits.h>
using namespace std;
ifstream fin("cifre11.in");
ofstream fout("cifre11.out");
int frcif[12];
int sumcif(int n){
int s=0;
while(n){
    s=s+n%10;
    n/=10;
}
return s;
}
int cifcon(int n){
int fr[12],i,j,maxi=0;
for(i=0;i<=9;i++)
fr[i]=0;
while(n){
    fr[n%10]++;
    n/=10;
}
//for(i=0;i<=9;i++)
//    fout<<fr[i]<<" ";
//fout<<endl;
for(i=0;i<=9;i++)
    if(fr[i])
    frcif[i]++;
for(i=0;i<=9;i++){
        if(fr[i]>0){
        //frcif[i]++;
    for(j=i;j<=9;j++){
        if(fr[j]==0)
            break;
       // j++;
    }
  //  fout<<i<<" "<<j<<endl;
    maxi=max(maxi,j-i);
    i=j;
    }
}
return maxi;
}
int main(){
int n,v[100002],i,maxi1=0,mini1=INT_MAX,ss,cc,maxi2=0,mini2=INT_MAX,maxi3=0;
fin>>n;
for(i=1;i<=n;i++){
    fin>>v[i];
   // fout<<cifcon(v[i])<<endl;
   cc=cifcon(v[i]);
    ss=sumcif(v[i]);
    if(ss==mini1){
        if(maxi1<v[i])
        maxi1=v[i];
    }
    if(ss<mini1){
       mini1=ss;
       maxi1=v[i];
    }

    if(cc==maxi2){
        if(v[i]<mini2)
            mini2=v[i];
    }
    //fout<<cc<<" ";
    if(cc>maxi2){
        maxi2=cc;
        mini2=v[i];
    }
}
for(i=0;i<=9;i++){
    maxi3=max(maxi3,frcif[i]);
   // fout<<frcif[i]<<" ";
}
fout<<maxi1<<'\n'<<mini2<<'\n';
for(i=0;i<=9;i++)
    if(maxi3==frcif[i])
    fout<<i<<" ";
}