fork download
  1. import scala.runtime.SeqCharSequence;
  2. import BCSImplicits._;
  3.  
  4. object BCSImplicits {
  5. implicit def charSeq2Better(cs: CharSequence) = new BetterCharSequence(cs);
  6. //implicit def better2CharSeq(bcs: BetterCharSequence) = bcs.s;
  7. }
  8.  
  9. class BetterCharSequence(val s: CharSequence) {
  10. override def equals(a: Any):Boolean = {
  11. a match {
  12. case c: BetterCharSequence => if(s.length != c.s.length) return false;
  13. for(i <- (0 until s.length))
  14. if(s.charAt(i) != c.s.charAt(i)) return false;
  15. case c: CharSequence => return equals(new BetterCharSequence(c));
  16. }
  17. }
  18. }
  19.  
  20. object Main extends App {
  21.  
  22. override def main(args: Array[String]) {
  23. var temp = new SeqCharSequence("test");
  24. println (temp.subSequence(0, 1) equals temp.subSequence(3, 4));
  25. System exit 0;
  26. val T = readLine.toInt;
  27. for(i <- (0 until T)) {
  28. val N = readLine.toInt; //length of p
  29. val p:Set[BetterCharSequence] = readLine.split(" ").map((x:String) => new BetterCharSequence(new SeqCharSequence(x))).toSet;
  30. println(p contains new SeqCharSequence("qwe").subSequence(1, 3));
  31. System exit 0;
  32. val pass = getPass(new SeqCharSequence(readLine), p, 0);
  33. if(pass == null) {
  34. println("WRONG PASSWORD");
  35. } else {
  36. println(pass);
  37. }
  38. }
  39. }
  40.  
  41. def getPass(pass: SeqCharSequence, p: Set[BetterCharSequence], pos: Int):String = {
  42. if(pass.length-pos == 0) return new String(); //base case
  43. var len = 1;
  44. while(len <= 10 && pass.length >= len+pos) { //max length of a password
  45. val temp = pass.subSequence(pos, pos+len);
  46. if(p contains temp) {
  47. val next = getPass(pass, p, pos+len);
  48. if(next != null) {
  49. return temp.toString + " " + next;
  50. }
  51. }
  52. len += 1;
  53. }
  54. }
  55.  
  56. }
Success #stdin #stdout 0.37s 382016KB
stdin
Standard input is empty
stdout
false