Guest
Public paste!

Untitled

By: a guest | Feb 9th, 2010 | Syntax: None | Size: 1.82 KB | Hits: 32 | Expires: Never
This paste has a previous version, view the difference. Copy text to clipboard
  1. /*
  2. ID: my_ID
  3. LANG: JAVA
  4. TASK: dualpal
  5. */
  6.  
  7. import java.io.*;
  8. import java.util.*;
  9.  
  10. class dualpal {
  11.         private static String result="";
  12.         public static void main (String[] args) throws IOException {
  13.                 BufferedReader f=new BufferedReader(new FileReader("dualpal.in"));
  14.                 PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("dualpal.out")));
  15.                 StringTokenizer data=new StringTokenizer(f.readLine());
  16.                 int N=Integer.parseInt(data.nextToken());
  17.                 int S=Integer.parseInt(data.nextToken());
  18.                 S++;
  19.                 int counter=0;
  20.                 for (int i=S;i<10000;S++) {
  21.                         if (doesPass(S)) {
  22.                                 counter++;
  23.                                 out.println(""+S);
  24.                         }
  25.                         if (counter == N) {
  26.                                 break;
  27.                         }
  28.                 }
  29.                 out.close();
  30.                 System.exit(0);
  31.         }
  32.         public static Boolean doesPass (int s) {
  33.                 int counter=0;
  34.                 for (int i=2;i<11;i++) {
  35.                         if (isPalin(changeBase(s,i))) {
  36.                                 counter++;
  37.                         }
  38.                         if (counter == 2) {
  39.                                 return true;
  40.                         }
  41.                 }
  42.                 return false;
  43.         }
  44.         public static Boolean isPalin (String s) {
  45.                 int marker=0;
  46.                 //remove leading and trailing 0's
  47.                 for (int i=0;i<s.length();i++) {
  48.                         if (s.charAt(i) == '0' && s.charAt(s.length() - i -1)=='0') {
  49.                                 marker++;
  50.                         } else {
  51.                                 break;
  52.                         }
  53.                 }
  54.                 s=s.substring(marker,s.length() - marker);
  55.                 marker=0;
  56.                 for (int i=0;i<s.length();i++) {
  57.                         if (s.charAt(i) == s.charAt(s.length() - i -1)) {
  58.                                 marker++;
  59.                         } else {
  60.                                 break;
  61.                         }
  62.                 }
  63.                 if (marker == s.length() || marker+1==s.length()) {
  64.                         return true;
  65.                 }
  66.                 return false;
  67.         }
  68.         public static String changeBase (int org, int base) {
  69.                 int tF=org;
  70.                 Boolean passer=true;
  71.                 String result="";
  72.                 while (passer) {
  73.                         if (tF / base < 1) {
  74.                                 result=(tF % base)+result;
  75.                                 passer=false;
  76.                         } else {
  77.                                 result=(tF % base)+result;
  78.                                 tF=(tF - (tF % base))/base;
  79.                         }
  80.                 }
  81.                 if (result.equals("")) { result=""+org; }              
  82.                 return result;
  83.         }
  84. }