結果
| 問題 | 
                            No.338 アンケート機能
                             | 
                    
| コンテスト | |
| ユーザー | 
                             piconic_X
                         | 
                    
| 提出日時 | 2016-02-04 22:33:24 | 
| 言語 | OCaml  (5.2.1)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 932 bytes | 
| コンパイル時間 | 394 ms | 
| コンパイル使用メモリ | 21,448 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-10-08 23:45:47 | 
| 合計ジャッジ時間 | 1,456 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 22 WA * 6 | 
ソースコード
let rec hasamiuchi k1 k2 a =
  let left, right = k1 *. a, k2 *. a in
  let cleft = ceil left in
  if cleft <= right then int_of_float (a +. cleft)
  else hasamiuchi k1 k2 (a+.1.)
let k1_k2 la lb =
  let la, lb = float_of_int la, float_of_int lb in
  let lamin, lamax = la -. 0.5, la +. 0.5 in
  let lbmin, lbmax = lb -. 0.5, lb +. 0.5 in
  let k1_la = (100. -. lamax) /. lamax +. 0.0000000001 in
  let k1_lb = lbmin /. (100. -. lbmin) in
  let k2_la = (100. -. lamin) /. lamin in
  let k2_lb = lbmax /. (100. -. lbmax) in
  let k1 = max k1_la k1_lb in
  let k2 = min k2_la k2_lb in
  k1, k2
let () =
  let k1, k2 = Scanf.sscanf (read_line()) ("%i %i") (fun x y -> x, y) in
  if k1 = 100 || k2 = 100 then
    if k1 + k2 = 100 then print_endline "1"
    else if k1 + k2 = 101 then print_endline "100"
    else exit 1
  else
    let k1, k2 = k1_k2 k1 k2 in
    let ans = hasamiuchi k1 k2 1. in
    print_int ans;
    print_endline ""
            
            
            
        
            
piconic_X