do I have to precalculate all of the runaround number???
![:o](./images/smilies/icon_eek.gif)
any hint???
![:roll:](./images/smilies/icon_rolleyes.gif)
Moderator: Board moderators
Well, I don't think there is input greater than the largeest run-around number. Problem maybe somewhere else. Check your output format.Sakib wrote:what will be the output for .........
9999999 ???????
Code: Select all
Cut After ACC.
Code: Select all
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string Number;
bool Visited[10];
bool allVisited()
{
for(int i = 0; i < Number.length(); i ++)
if(Visited[i] == false)
return false;
return true;
}
bool isRunaroundNumber(int Index)
{
if(Index == 0 && allVisited())
{
return true;
}
if(!Visited[Index])
{
Visited[Index] = true;
int Next = (Index + Number[Index] - 48);
if(Next >= Number.length())
Next %= Number.length();
isRunaroundNumber(Next);
}
}
void addOne(string& Number)
{
for(int i = 0; i < Number.length(); i ++)
if(Number[i] == '0')
Number[i] ++;
reverse(Number.begin(), Number.end());
int Index = 0;
Number[Index] += 1;
while(Number[Index] > '9')
{
Number[Index ++] -= 9;
if(Index == Number.length())
Number += "1";
else
Number[Index] += 1;
}
reverse(Number.begin(), Number.end());
}
bool DigitsAreUnique(string& Number)
{
for(int i = 0; i < Number.length(); i ++)
{
for(int j = i + 1; j < Number.length(); j ++)
{
if(Number[i] == Number[j])
return false;
}
}
return true;
}
void removeLeadingZeros(string& Number)
{
string Temp = "";
bool First = true;
for(int i = 0; i < Number.length(); i ++)
{
if(Number[i] != '0' && First)
First = false;
if(!First)
Temp += Number[i];
}
Number = Temp;
}
int main()
{
freopen("ACM.in", "r", stdin);
for(int Case = 1; getline(cin, Number) && Number != "0"; Case++)
{
removeLeadingZeros(Number);
fill(Visited, Visited + 10, false);
while(!DigitsAreUnique(Number) || !isRunaroundNumber(0))
{
addOne(Number);
fill(Visited, Visited + 10, false);
}
cout << "Case " << Case << ": " << Number << endl;
}
return 0;
}
Code: Select all
// @JUDGE_ID: 250890 374 Java "Big Mod"
import java.io.BufferedReader;
//import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.Scanner;
class BigModMain {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Scanner in = new Scanner(new FileInputStream(new File("input")));
Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
BigInteger b = BigInteger.ZERO;
BigInteger p = BigInteger.ZERO;
BigInteger m = BigInteger.ZERO;
while (in.hasNext()) {
b = in.nextBigInteger();
p = in.nextBigInteger();
m = in.nextBigInteger();
System.out.println(b.modPow(p, m));
}
in.close();
return;
}
}
Code: Select all
delete after AC