water~2

poj3299 http://poj.org/problem?id=3299
#include <iostream>
#include <fstream>
#include <cmath>
#define EXP 2.718281828

using namespace std;

double funcE(double dewPoint)
{
	return 6.11*pow(EXP,5417.7530*((1.0/273.16)-(1.0/(dewPoint+273.16))));
}

double funcH(double t,double d)
{
	return t+0.5555*(funcE(d)-10.0);
}

double funcT(double h,double d)
{
	return h-0.5555*(funcE(d)-10.0);
}

double funcEToD(double e)
{
	return 1.0/(1.0/273.16-log(e/6.11)/5417.7530)-273.16;
}

double funcD(double t,double h)
{
	return funcEToD((h-t)/0.5555+10.0);
}

int main()
{
//ifstream cin("1.txt");
	char ca,cb;
	double a,b;
	
	while(1)
	{		
		cin>>ca;	
		if(ca=='E')
			break;
		cin>>a>>cb>>b;		
		
		if(ca=='T' && cb=='D')
			printf("T %.1f D %.1f H %.1f\n",a,b,funcH(a,b));
		
		else if(ca=='D' && cb=='T')
			printf("T %.1f D %.1f H %.1f\n",b,a,funcH(b,a));
		
		else if(ca=='T' && cb=='H')
			printf("T %.1f D %.1f H %.1f\n",a,funcD(a,b),b);
		
		else if(ca=='H' && cb=='T')
			printf("T %.1f D %.1f H %.1f\n",b,funcD(b,a),a);			
		else if(ca=='H' && cb=='D')
			printf("T %.1f D %.1f H %.1f\n",funcT(a,b),b,a);
			
		else if(ca=='D' && cb=='H')
			printf("T %.1f D %.1f H %.1f\n",funcT(b,a),a,b);
			

		
	}
	return 0;
}

你可能感兴趣的:(water)