ulvis.paste.net

Paste Search Dynamic
Recent pastes
flake
  1.  
  2. import java.util.*;
  3. import java.lang.*;
  4. import java.io.*;
  5.  
  6. /* Name of the class has to be "Main" only if the class is public. */
  7. class public
  8. {
  9.         public static void main (string[] args) throws java.lang.Exception
  10.         {
  11.                 // your code goes here
  12.                 Scanner scan = new Scanner(System.in);
  13.                 string s = scan.nextLine();
  14.                 int finalLength = scan.nextInt();
  15.                 char [] arr = s.toCharArray();
  16.                 int n = arr.length;
  17.                 int candy=0;
  18.                 int flake = 0;
  19.                 for(int i=0; i<n; i++){
  20.                         if(arr[i] == '?'){
  21.                                 candy++;
  22.                         }
  23.                         else if(arr[i] == '*'){
  24.                                 flake++;
  25.                         }
  26.                 }
  27.                 // impossible -> no * && length - 2*candy > finallength, candy or flake in starting
  28.  
  29.                 if(flake == 0 && n-candy < finalLength)
  30.                 {
  31.                         System.out.println("Impossible");
  32.                 }
  33.  
  34.                 else if(arr[0] == '?' || arr[0] == '*')
  35.                 {
  36.                         System.out.println("Impossible");
  37.                 }
  38.  
  39.                 else
  40.                 {
  41.                         if(n - candy - flake > finalLength){
  42.                                 int diff = (n-candy-flake) - finalLength;
  43.                                 if(diff > candy+flake)
  44.                                 {
  45.                                         System.out.println("Impossible");
  46.                                 }
  47.  
  48.                                 else
  49.                                 {
  50.                                         int tillNow = 0;
  51.                                         for(int i=0; i<n-1; i++){
  52.                                                 if(tillNow != diff && (arr[i+1] == '?' || arr[i+1] == '*')){
  53.                                                         tillNow++;
  54.                                                         // i++;
  55.                                                 }
  56.                                                 else if(arr[i] != '?' && arr[i] != '*'){
  57.                                                 System.out.format("%c",arr[i]);
  58.  
  59.                                                 }
  60.                                         }
  61.                                         if(arr[n-1] != '?' && arr[n-1] != '*'){
  62.                                                 System.out.format("%c",arr[n-1]);
  63.                                         }
  64.                                 }
  65.  
  66.                         }
  67.                         else if(n-candy-flake == finalLength){
  68.                                 // clean version
  69.                                 for(int i=0; i<n; i++){
  70.                                         if(arr[i] == '?' || arr[i] == '*'){}
  71.                                         else{
  72.                                                 System.out.format("%c",arr[i]);
  73.                                         }
  74.                                 }
  75.                         }
  76.                         else{
  77.                                 int repeatFor = n - candy - flake - finalLength;
  78.                                 //repeat flake, keep else
  79.                                 int i=0;
  80.                                 while(arr[i] != '*'){
  81.                                         if(arr[i] != '?')
  82.                                                 System.out.format("%c",arr[i]);
  83.                                         i++;
  84.                                 }
  85.                                 for(int j=0; j<repeatFor; j++){
  86.                                         System.out.format("%c",arr[i-1]);
  87.                                 }
  88.                                 while(i!=n-1){
  89.                                         if(arr[i] == '?' || arr[i] == '*'){}
  90.                                         else{
  91.                                                 System.out.format("%c",arr[i]);
  92.                                         }
  93.                                         i++;
  94.                                 }
  95.                         }
  96.                 }
  97.  
  98.  
  99.         }
  100. }
Parsed in 0.014 seconds