結果
| 問題 |
No.35 タイパー高橋
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-04-29 05:17:46 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 265 ms / 5,000 ms |
| コード長 | 2,957 bytes |
| コンパイル時間 | 3,585 ms |
| コンパイル使用メモリ | 78,240 KB |
| 実行使用メモリ | 45,172 KB |
| 最終ジャッジ日時 | 2024-06-27 23:29:43 |
| 合計ジャッジ時間 | 5,699 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 |
ソースコード
import java.util.Scanner;
// ***問題文***
// 高橋くんは高速なプログラミングにはタイピング力が不可欠と考えています。
// そこで、タイピングゲームでタイピング力を鍛えます。
// この問題では簡単のために、タイピングする文字列はアルファベット小文字のみからなる文字列を考えます。
// あるタイピングゲームでは、1ゲームは N 個の区間に分かれており、区間 k では、Tk ミリ秒以内に Sk という文字列をタイピングしなければいけません。
// 高橋くんは 1 秒あたり 12 文字まで正しくタイプすることができます。
// これは、1000 ミリ秒では 12 文字まで、999 ミリ秒では 11 文字までタイプできるということで、
// m ミリ秒では ⌊12m/1000⌋ 文字までタイプできることになります。(⌊x⌋ は xを超えない最大の整数を表します)
// 高橋くんはできるだけ多くの文字をタイプするとして、1ゲーム全体で、高橋くんが正しくタイプできる文字数、
// および、タイプできずに逃してしまう文字数を求めるプログラムを書いてください。
// ***入力***
// N
// T1 S1
// T2 S2
// ⋮
// TN SN
// 1行目では、1 ゲームの区間の数を表す整数 N (1≤N≤1000) が与えられます。
// 次の N 行では、順番に区間 k での制限時間を表す整数 Tk (1≤Tk≤30000) および
// 入力すべき文字列 Sk が半角スペース区切りで与えられます。
// Sk はアルファベット小文字のみからなる文字列で、その長さは 1 以上 100 以下です。
// ***出力***
// 高橋くんが正しくタイプできる文字数、および、タイプできずに逃してしまう文字数を半角スペース区切りで
// 1 行で出力してください。出力の終わりは改行してください。
public class No35 {
public static void main(String[] args) {
// 標準入力から読み込む際に、Scannerオブジェクトを使う。
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int T = 0;
String S = "";
int total = 0;
int remain = 0;
double temp = 0;
for(int i = 0; i < n; i++) {
T = sc.nextInt();
S = sc.next();
// タイプ可能な文字数
temp = T / (1000.0 / 12.0);
// タイプ可能文字と逃した文字を加算
if(S.length() > temp) {
// タイプ可能文字tempより文字列が長い場合
total += temp;
remain += S.length() - (int)temp;
}else {
// 文字列よりタイプ可能文字が長い場合
total += S.length();
}
}
System.out.println(total + " " + remain);
}
}