Skip to content

Instantly share code, notes, and snippets.

View krrrr38's full-sized avatar
💭
🍣

Ken Kaizu krrrr38

💭
🍣
View GitHub Profile
@krrrr38
krrrr38 / sbtTest.scala
Created February 22, 2012 02:50
sbtでテスト
// //src/main/scala/Main.scala
package hoge
case class Main(index: Int, name: String){
lazy val ps: Stream[Int] = 2 #:: Stream.from(3).filter(i =>
ps.takeWhile(j => j*j <= i).forall(i%_ != 0))
def isPrime(n: Int): Boolean = Iterator.from(2).takeWhile(i =>
i*i <= n).forall(n%_ != 0)
}
@krrrr38
krrrr38 / sony_pr1.scala
Created February 23, 2012 03:17
sony "GO FOR IT" - 1
package sony
import java.util.Calendar
/**
* Birth
*
* @constructor create a new birth date
* @param birthYear the year of birth
* @param birthMonth the month of birth
* @param birthDay the day of birth
@krrrr38
krrrr38 / sony_pr2.scala
Created February 23, 2012 03:41
sony "GO FOR IT" - 2
package sony
/**
* Factorial
* add the methods for factorial
*
*/
trait Factorial{
def fact(n: Int) = (1 to n).foldLeft(1)(_*_)
def fact(d: Double) = if (d > 0) factPositive(d) else factNegative(d)
@krrrr38
krrrr38 / dijcstra.scala
Created February 25, 2012 22:35
ダイクストラ法
import scala.io.Source
import scala.annotation.tailrec
case class Node(connects: List[(Int, Int)], var value: Int = Int.MaxValue)
class Dijcstra(file: String) {
val lines = Source.fromFile(file).getLines
val adacent = lines map { n => n.replace(" ", "").split(',').toList map { _.toInt } }
val nodes = (for (ad <- adacent) yield Node(ad.zipWithIndex filter { _._1 != 0 })).toArray
@krrrr38
krrrr38 / hanafuda.scala
Created February 28, 2012 19:50
Hanafuda Shuffle
// http://acm.pku.edu.cn/JudgeOnline/problem?id=1978
package icpc
import java.util.Scanner
import scala.annotation.tailrec
class Hanafuda(sc: Scanner) {
def start(): Unit = {
@tailrec
def shuffle(cards: List[Int], r: Int) : List[Int] = {
if (r == 0) cards
@krrrr38
krrrr38 / ohgas.scala
Created February 28, 2012 19:51
Ohgas' Fortune
// http://acm.pku.edu.cn/JudgeOnline/problem?id=2683
package icpc
import java.util.Scanner
import scala.annotation.tailrec
case class Deposit(first: Int, way: Int, rate: Double, fee:Int){
def predict(year: Int): Int = way match {
case 0 => simpleR(first, year, 0)
case 1 => compoundR(first, year)
case _ => throw new IllegalArgumentException
@krrrr38
krrrr38 / keitai.scala
Created February 28, 2012 19:52
Keitai Message
// http://www.deqnotes.net/acmicpc/p0003/judge
package icpc
import java.util.Scanner
class Keitai(sc: Scanner){
val sm = Map(1 -> " .,!?", 2 -> "cab", 3 -> "fde", 4 -> "igh",
5 -> "ljk", 6 -> "omn", 7 -> "spqr", 8 -> "vtu", 9 -> "zwxy")
def start(c: Int): Unit = {
def convert(n: String): Char = sm.get(n.head.toString.toInt) match {
case Some(v) => v(n.length%v.length)
@krrrr38
krrrr38 / exploring.scala
Created February 28, 2012 19:53
Exploring Caves
// http://www.deqnotes.net/acmicpc/p0004/judge
package icpc
import java.util.Scanner
import scala.annotation.tailrec
class ExploringCaves(sc: Scanner) {
def findTreasure(routes: List[(Int, Int)]) = routes.sortBy(n => (n._1*n._1 + n._2*n._2)).last
def search(start: (Int, Int)): (Int, Int) = {
@tailrec
@krrrr38
krrrr38 / meeting.scala
Created February 28, 2012 20:36
When Can We Meet?
// http://acm.pku.edu.cn/JudgeOnline/problem?id=2028
// 配列のindexなどの使い方がいまいち分からない.
package icpc
import java.util.Scanner
class Meeting(sc: Scanner){
def adjust(n: Int, q: Int): Int = {
val dates = Array.tabulate(101)(n => 0)
for (i <- 1 to n) {
val c = sc.nextInt
@krrrr38
krrrr38 / purse.scala
Created February 28, 2012 21:11
Make Purse Light
// http://www.deqnotes.net/acmicpc/p0006/judge
package icpc
import java.util.Scanner
class Purse(sc: Scanner){
def solve(amount: Int, own: Int): (Int, Int, Int, Int) = {
val diff = own - amount
(diff%500%100%50/10, diff%500%100/50, diff%500/100, diff/500)
}