Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

RGB7710 - Тоо хуваагдаад л

n оронтой a1a2...aтоог 0,1,2,3,4,5,6,7,8,9 цифрүүдийн тусламжтайгаар дараахь 3 чанарыг хангахаар үүсгэв.

1. 0 цифрээр эхлэхгүй

2. Цифр давхцахгүй

3. a1a2 тоо 2-т хуваагдана, a1a2a3 тоо 3-т хуваагдана, ..., a1a2...an тоо n-д хуваагдана.

Эхний цифр a1 өгөгдөхөд дээрх чанарыг хангах хамгийн их тоог ол.

Input

0-ээс ялгаатай цифр өгөгдөнө.

Output

Өгөгдсөн цифрээр эхэлсэн дээрх 3 чанарыг хангах хамгийн их тоог ол.

Example

Input:

5

Output:

5612047


Нэмсэн:Bataa
Огноо:2013-04-16
Хугацааны хязгаарлалт:1s
Эх кодын хэмжээний хязгаарлалт:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Програмчлалын хэлүүд:ADA95 ASM32 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE
Эх сурвалж:Багш нарын аймгийн олимпиад

hide comments
2025-08-27 13:16:45
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n, k, i, j;
string a[100];
vector < ll > v[100];

bool check(ll n){
ll t, j = 0, k;
unordered_set < int > s;
t = i;
while(t > 0){
t--; j++;
k = n / pow(10, t);
if(k % j != 0) return false;
}
while(n > 0){
s.insert(n % 10);
n /= 10;
}
if(s.size() == i) return true;
return false;
}

void g_to(ll t, int n){
if(n > 10) return;
v[n].push_back(t);
if(n == 2 || n == 8){
int k = ((n+1) - (t % (n+1)))%(n+1);
while(k < 10){
g_to(t*10 + k, n + 1);
k += (n+1);
}
}
else
if(n == 5){
int k = (3 - (t % 3)) % 3;
while(k < 10){
if(k % 2 == 0) g_to(t*10 + k, n + 1);
k += 3;
}
}
else{
for(int i = 0; i < a[n+1].size(); i++){
g_to(t*10 + a[n+1][i]-48, n + 1);
}
}
return;
}
int main(){
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cin >> n;
a[2] += "02468";
a[4] += "02468";
a[5] += "05";
a[7] += "0123456789";
a[8] += "02468";
a[10] += "0";
g_to(n, 1);

for(i = 10; i >= 1; i--){
for(j = v[i].size()-1; j >= 0; j--){
if(check(v[i][j]) == true){
cout << v[i][j]<<endl;
return 0;
}
}
}
}
// ngna
2024-05-10 05:31:31
#include <stdio.h>
#include <stdlib.h>
#includec< bits/stdc++.h
#include <algorithm>
using namespace std;
long long shalgah(long long n,long long m)
{
long long ok=0,s;
while(n>9)
{
s=n%10;
if (s==m) {
ok=1;
break;
}
else
n=n/10;
}
if (ok==0)
if (n==m) ok=1;
return ok;
}
long long n,i,a[1000],b[1000],r,m,j,ok,ok1;
int main()
{
// freopen("too.in","r",stdin);
// freopen("too.out","w",stdout);
scanf("%lld",&n);
a[1]=n;
ok1=0;
//*******2-t huwaagdah
{
m=0;
ok=0;
for (i=0;i<=9;i++)
if (i!=n)
if ((a[1]*10+i)%2==0)
{
m++;
b[m]=a[1]*10+i;
ok=1;
}
if (ok==1)
for (i=1;i<=m;i++)
a[i]=b[i];
}
///**********3-t
if (ok1==0)
{
r=0;
ok=0;
for (i=1;i<=m;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%3==0)
{
r++;
b[r]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=r;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+m+1);
printf("%lld",a[m]);
}
}
///*******4-t
if (ok1==0)
{
m=0;
ok=0;
for (i=1;i<=r;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%4==0)
{
m++;
b[m]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=m;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+r+1);
printf("%lld",a[r]);
}
}
/////********5-t
if (ok1==0)
{
r=0;
ok=0;
for (i=1;i<=m;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%5==0)
{
r++;
b[r]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=r;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+m+1);
printf("%lld",a[m]);
}
}
//*******6-d
if (ok1==0)
{
m=0;
ok=0;
for (i=1;i<=r;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%6==0)
{
m++;
b[m]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=m;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+r+1);
printf("%lld",a[r]);
}
}
//*************7-d
if (ok1==0)
{
r=0;
ok=0;
for (i=1;i<=m;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%7==0)
{
r++;
b[r]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=r;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+m+1);
printf("%lld",a[m]);
}
}
///////*********8-d
if (ok1==0)
{
m=0;
ok=0;
for (i=1;i<=r;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%8==0)
{
m++;
b[m]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=m;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+r+1);
printf("%lld",a[r]);
}
}
//////************9-d
if (ok1==0)
{
r=0;
ok=0;
for (i=1;i<=m;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%9==0)
{
r++;
b[r]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=r;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+m+1);
printf("%lld",a[m]);
}
}
//**********10-d
if (ok1==0)
{
m=0;
ok=0;
for (i=1;i<=r;i++)
for (j=0;j<=9;j++)
if (shalgah(a[i],j)==0)
if ((a[i]*10+j)%10==0)
{
m++;
b[m]=a[i]*10+j;
ok=1;
}
if (ok==1)
for (i=1;i<=m;i++)
{
a[i]=b[i];
//printf("%d ",a[i]);
}
else
if (ok==0)
{
ok1=1;
sort(a+1,a+r+1);
printf("%lld",a[r]);
}
}
if (ok1==0)
{
sort(a+1,a+m+1);
printf("%lld",a[m]);
}
system("pause");
return 0;
} huul lalruuda

Last edit: 2024-10-01 07:30:47
2022-06-11 06:13:06
Багш нарын аймгийн олимпиад
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.