68 lines
2.0 KiB
Java
Executable File
68 lines
2.0 KiB
Java
Executable File
import java.io.*;
|
|
import java.util.regex.*;
|
|
import java.util.StringTokenizer;
|
|
import java.lang.Math;
|
|
import java.text.NumberFormat;
|
|
|
|
public class tread {
|
|
|
|
public static void main ( String[] args ) {
|
|
final String end = "10";
|
|
final Pattern chirp = Pattern.compile ( "[45] [45] [01] [89]" );
|
|
BufferedReader input;
|
|
PrintWriter output;
|
|
int programs = 0;
|
|
|
|
try {
|
|
input = new BufferedReader ( new FileReader ( "tread.in" ) );
|
|
output = new PrintWriter ( new FileOutputStream ( "tread.out" ) );
|
|
|
|
programs = Integer.parseInt ( input.readLine() );
|
|
for ( int count = 1; count <= programs; count++ ) {
|
|
output.println ( "Program " + count );
|
|
|
|
String line = input.readLine();
|
|
while ( !line.endsWith ( end ) ) {line += " " + input.readLine();}
|
|
|
|
int stringpos = 0;
|
|
Matcher m = chirp.matcher ( line );
|
|
|
|
while ( m.find ( stringpos ) ) {
|
|
stringpos = m.start();
|
|
int time = 0, incline = 0;
|
|
String tmp = line.substring ( m.end() );
|
|
if ( tmp.length() < 12 )
|
|
break;
|
|
StringTokenizer token = new StringTokenizer ( tmp );
|
|
for ( int c = 0; c < 3; c++ ) {
|
|
String t = token.nextToken();
|
|
String u = token.nextToken();
|
|
if ( (t.equals ( "0" ) || t.equals ( "1" )) && (u.equals ( "8" ) || u.equals ( "9" )) ) {
|
|
time += Math.pow ( 2, c );
|
|
}
|
|
}
|
|
for ( int c = 0; c < 3; c++ ) {
|
|
String t = token.nextToken();
|
|
String u = token.nextToken();
|
|
if ( (t.equals ( "0" ) || t.equals ( "1" )) && (u.equals ( "8" ) || u.equals ( "9" )) ) {
|
|
incline += Math.pow ( 2, c );
|
|
}
|
|
}
|
|
|
|
NumberFormat f = NumberFormat.getIntegerInstance();
|
|
f.setMinimumIntegerDigits ( 2 );
|
|
int minutes = (int)Math.floor ( stringpos / 360 );
|
|
int seconds = (int)Math.floor ( stringpos % 360 / 6 );
|
|
output.println ( f.format ( minutes ) + ":" + f.format ( seconds ) + " Speed " + time + " Inclination " + incline );
|
|
stringpos += 32;
|
|
}
|
|
}
|
|
|
|
input.close(); output.flush(); output.close();
|
|
}
|
|
catch ( Exception e ) {e.printStackTrace();}
|
|
|
|
}
|
|
|
|
}
|