INPUT:
U prvom redu se nalaze prirodni brojevi A i B (1 <= A <= B <= 10.000.000).
OUTPUT:
U prvom i jedinom redu ispisati broj k koji predstavlja vrednost objašnjenju u postavci zadatka.
Izvor: www.z-trening.com
Ja sam odradio ovako, ali mi 3 testa ne prolaze vremenski:
Code:
#include <stdio.h>
int f(long n){
if(n!=0) return (n%10+f(n/10)); //probao sam i slucaj kada funkcija nije rekurzivna
else return 0;}
int maxniza(int a[],int n){
int i,max=a[0],maxpoz=0;
for(i=1;i<n;i++)
if((a[i]>=max) && (i>maxpoz)){
max=a[i];
maxpoz=i;}
return maxpoz;}
main(){
long A,B;
int x[64],i,s,max;
scanf("%ld%ld",&A,&B);
for(i=0;i<63;i++)
x[i]=0;
for(A;A<=B;A++){
s=f(A);
x[s]++;}
max=maxniza(x,64);
printf("%d",max);
return 0; }
#include <stdio.h>
int f(long n){
if(n!=0) return (n%10+f(n/10)); //probao sam i slucaj kada funkcija nije rekurzivna
else return 0;}
int maxniza(int a[],int n){
int i,max=a[0],maxpoz=0;
for(i=1;i<n;i++)
if((a[i]>=max) && (i>maxpoz)){
max=a[i];
maxpoz=i;}
return maxpoz;}
main(){
long A,B;
int x[64],i,s,max;
scanf("%ld%ld",&A,&B);
for(i=0;i<63;i++)
x[i]=0;
for(A;A<=B;A++){
s=f(A);
x[s]++;}
max=maxniza(x,64);
printf("%d",max);
return 0; }
[Ovu poruku je menjao proka_92 dana 13.02.2010. u 19:40 GMT+1]