#include<stdio.h>
#include<string.h>
#define MAXN 500+2
char line1[ MAXN] ;
double num[ 2 ] = { 0.0 , 0.0 } ;
char unit[ 2 ] = { '0' , '0' } ;
char prefix[ 2 ] = { '0' , '0' } ;
void dataProcess( char unit1, double num1, char unit2, double num2)
{
if ( unit1 == 'W' && unit2 == 'V' )
printf ( "I=%.2lfA\n " , ( 1.0 * num1) / ( 1.0 * num2) ) ;
else if ( unit1 == 'V' && unit2 == 'W' )
printf ( "I=%.2lfA\n " , ( 1.0 * num2) / ( 1.0 * num1) ) ;
else if ( unit1 == 'W' && unit2 == 'A' )
printf ( "U=%.2lfV\n " , ( 1.0 * num1) / ( 1.0 * num2) ) ;
else if ( unit1 == 'A' && unit2 == 'W' )
printf ( "U=%.2lfV\n " , ( 1.0 * num2) / ( 1.0 * num1) ) ;
else
printf ( "P=%.2lfW\n " , 1.0 * num1 * num2) ;
}
double conversion( double num, char prefix)
{
switch ( prefix) {
case 'm' :
num * = 0.001 ;
case 'k' :
num * = 1000 ;
case 'M' :
num * = 1000000 ;
}
return num;
}
int main( )
{
int nTest = 0 ;
int i = 0 , j = 1 ;
scanf ( "%d" , & nTest) ;
getchar ( ) ;
while ( nTest-- ) {
i = 0 ;
memset ( num, 0.0 , sizeof ( num) ) ;
memset ( unit, 0 , sizeof ( unit) ) ;
memset ( prefix, 0.0 , sizeof ( prefix) ) ;
fgets ( line1, MAXN, stdin ) ;
char * pch;
pch = strpbrk ( line1, "=" ) ;
while ( pch ! = NULL )
{
if ( unit[ i] == 'm' | 'k' | 'M' ) {
sscanf ( pch+ 1 , "%lf %[mkM] %[VAW]" , & num[ i] , & prefix[ i] , & unit[ i] ) ;
num[ i] = conversion( num[ i] , prefix[ i] ) ;
}
pch = strpbrk ( pch+ 1 ,"=" ) ;
i++ ;
}
printf ( "Problem #%d\n " , j++ ) ;
dataProcess( unit[ 0 ] , num[ 0 ] , unit[ 1 ] , num[ 1 ] ) ;
if ( nTest)
printf ( "\n " ) ;
}
return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNkZWZpbmUgTUFYTiA1MDArMgoKY2hhciBsaW5lMVtNQVhOXTsKZG91YmxlIG51bVsyXSA9IHswLjAsIDAuMH07CmNoYXIgdW5pdFsyXSA9IHsnMCcsICcwJ307CmNoYXIgcHJlZml4WzJdID0geycwJywgJzAnfTsKCnZvaWQgZGF0YVByb2Nlc3MoY2hhciB1bml0MSwgZG91YmxlIG51bTEsIGNoYXIgdW5pdDIsIGRvdWJsZSBudW0yKQp7CiAgICAgICAgaWYodW5pdDEgPT0gJ1cnICYmIHVuaXQyID09ICdWJykKICAgICAgcHJpbnRmKCJJPSUuMmxmQVxuIiwgKDEuMCAqIG51bTEpIC8gKDEuMCAqIG51bTIpKTsKICAgICAgICBlbHNlIGlmKHVuaXQxID09ICdWJyAmJiB1bml0MiA9PSAnVycpCiAgICAgIHByaW50ZigiST0lLjJsZkFcbiIsICgxLjAgKiBudW0yKSAvICgxLjAgKiBudW0xKSk7CiAgICAgICAgZWxzZSBpZih1bml0MSA9PSAnVycgJiYgdW5pdDIgPT0gJ0EnKQogICAgICBwcmludGYoIlU9JS4ybGZWXG4iLCAoMS4wICogbnVtMSkgLyAoMS4wICogbnVtMikpOwogICAgICAgIGVsc2UgaWYodW5pdDEgPT0gJ0EnICYmIHVuaXQyID09ICdXJykKICAgICAgcHJpbnRmKCJVPSUuMmxmVlxuIiwgKDEuMCAqIG51bTIpIC8gKDEuMCAqIG51bTEpKTsKICAgICAgICBlbHNlCiAgICAgIHByaW50ZigiUD0lLjJsZldcbiIsIDEuMCAqIG51bTEgKiBudW0yKTsKfQoKZG91YmxlIGNvbnZlcnNpb24oZG91YmxlIG51bSwgY2hhciBwcmVmaXgpCnsKICAgc3dpdGNoKHByZWZpeCl7CiAgICAgIGNhc2UgJ20nOgogICAgICAgICBudW0gKj0gMC4wMDE7CiAgICAgIGNhc2UgJ2snOgogICAgICAgICBudW0gKj0gMTAwMDsKICAgICAgY2FzZSAnTSc6CiAgICAgICAgIG51bSAqPSAxMDAwMDAwOwogICB9CiAgIHJldHVybiBudW07Cn0KCmludCBtYWluKCkKewogICBpbnQgblRlc3QgPSAwOwogICBpbnQgaSA9IDAsIGogPSAxOwogICBzY2FuZigiJWQiLCAmblRlc3QpOwogICBnZXRjaGFyKCk7CiAgIHdoaWxlKG5UZXN0LS0pewogICAgICBpID0gMDsKICAgICAgbWVtc2V0KG51bSwgMC4wLCBzaXplb2YobnVtKSk7CiAgICAgIG1lbXNldCh1bml0LCAwLCBzaXplb2YodW5pdCkpOwogICAgICBtZW1zZXQocHJlZml4LCAwLjAsIHNpemVvZihwcmVmaXgpKTsKCiAgICAgIGZnZXRzKGxpbmUxLCBNQVhOLCBzdGRpbik7CgogICAgICBjaGFyICogcGNoOwogICAgICBwY2ggPSBzdHJwYnJrIChsaW5lMSwgIj0iKTsKICAgICAgd2hpbGUgKHBjaCAhPSBOVUxMKQogICAgICB7CiAgICAgICAgIGlmKHVuaXRbaV0gPT0gJ20nfCdrJ3wnTScpewogICAgICAgICAgICBzc2NhbmYocGNoKzEsICIlbGYgJVtta01dICVbVkFXXSIsICZudW1baV0sICZwcmVmaXhbaV0sICZ1bml0W2ldKTsKICAgICAgICAgICAgbnVtW2ldID0gIGNvbnZlcnNpb24obnVtW2ldLCBwcmVmaXhbaV0pOwogICAgICAgICB9CiAgICAgICAgIHBjaCA9IHN0cnBicmsgKHBjaCsxLCI9Iik7CiAgICAgICAgIGkrKzsKICAgICAgfQoKICAgICAgcHJpbnRmKCJQcm9ibGVtICMlZFxuIiwgaisrKTsKICAgICAgZGF0YVByb2Nlc3ModW5pdFswXSwgbnVtWzBdLCB1bml0WzFdLCBudW1bMV0pOwogICAgICBpZihuVGVzdCkKICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAKICAgfQogICAKICAgcmV0dXJuIDA7Cn0K