Advertisement
Nickpips

Fractiles

Apr 9th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.61 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.PrintWriter;
  4. import java.math.BigInteger;
  5. import java.util.ArrayList;
  6. import java.util.Scanner;
  7.  
  8. public class Fractiles {   
  9.     public static void main(String[] args) throws FileNotFoundException {
  10.         Scanner in = new Scanner(new File("\\in"));
  11.         PrintWriter out = new PrintWriter(new File("\\out"));
  12.         //Scanner in = new Scanner(System.in);
  13.         //PrintWriter out = new PrintWriter(System.out);
  14.        
  15.         int T = in.nextInt();
  16.         in.nextLine();
  17.         for (int t = 1; t <= T; t++) {
  18.             out.print("Case #" + t + ": ");
  19.  
  20.             int K = in.nextInt();
  21.             int C = in.nextInt();
  22.             int S = in.nextInt();
  23.            
  24.             if( Math.ceil((double)K / C) > S )
  25.             {
  26.                 out.println("IMPOSSIBLE");
  27.                 continue;
  28.             }
  29.             if( K == 1 )
  30.             {
  31.                 out.println("1");
  32.                 continue;
  33.             }
  34.            
  35.             ArrayList<BigInteger> powers = new ArrayList<BigInteger>();
  36.             BigInteger mult = new BigInteger("1");
  37.            
  38.             for( int i = 0; i < C; i++ )
  39.             {
  40.                 powers.add(new BigInteger(mult.toString()));
  41.                 mult = mult.multiply(BigInteger.valueOf(K));
  42.             }
  43.            
  44.             BigInteger ind = new BigInteger("0");
  45.            
  46.             for( int i = 0; i < K || i % C != 0; i++ )
  47.             {
  48.                 ind = ind.add(powers.get(C-1-(i%C)).multiply(BigInteger.valueOf(Math.min(K-1, i))));
  49.                 if( (i+1) % C == 0 )
  50.                 {
  51.                     out.print(ind.add(BigInteger.ONE)+" ");
  52.                     ind = new BigInteger("0");
  53.                 }
  54.                 System.out.println(ind);
  55.             }
  56.             out.println();
  57.         }
  58.  
  59.         in.close();
  60.         out.close();
  61.     }
  62.  
  63.     public static void debug(Object o) {
  64.         System.out.println("\t\tDEBUG: " + o.toString().replace("\n", "\n\t\tDEBUG: "));
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement