Poj-1013 Counterfeit Dollar (Runtime Error)

* main.cpp
 *
 *  Created on: 2013-6-2
 *      Author: Jeff
 */
/*题目地址:http://poj.org/problem?id=1013*/
#include<iostream>
#include<string>
using namespace std;


int main()
{
	int A_sub_0 = 'A' - 0;
	int num_of_case=0;	//输入数据的组数
	string *inputData = NULL;	//输入的数据
	inputData = new string[3];
	int coin[12];
	/*coin数组用以表示十二个硬币的真假状态,0表示硬币为真,1与-1都表示为假,且1为重了,-1轻了*/
	for(int i= 0; i < 12; i++)
		coin[i] = 2;

	cin>>num_of_case;
	string* result = NULL;
	result = new string[num_of_case];

	for(int i = 0, n = 0; i < 3*num_of_case; i++){


		for(int j = 0; j <3; j++){
			cin>>inputData[j];
		}

		if(inputData[2] == "even"){
			for(int k = 0; k < (int)inputData[0].length(); k++){
				int left = inputData[0][k] - A_sub_0;
				int right = inputData[1][k] - A_sub_0;
				coin[left] = 0;
				coin[right] = 0;
			}
		}
		else if (inputData[2] == "up"){
			for(int k = 0; k < (int)inputData[0].length(); k++){
				int left = inputData[0][k] - A_sub_0;
				int right = inputData[1][k] - A_sub_0;
				if(coin[left] == 2)
					coin[left] = 1;
				if(coin[right] == 2)
					coin[right] = -1;
			}
		}
		else{
			for(int k = 0; k < (int)inputData[0].length(); k++){
				int left = inputData[0][k] - A_sub_0;
				int right = inputData[1][k] - A_sub_0;
				if(coin[left] == 2)
					coin[left] = -1;
				if(coin[right] == 2)
					coin[right] = 1;
			}
		}

		/*判断一组数据输完了没,并且查找哪一个硬币是赝品,并将结果存入result数组中*/
		if((i+1)%3 == 0){
			for(int i = 0; i < 12; i++){
				if(coin[i] == -1 || coin[i] == 1){
					result[n] = (char)(i+A_sub_0);
					result[n]+=" is the counterfeit coin and it is ";
					if(coin[i] == -1)
						result[n]+="light.";
					else
						result[n]+="heavy.";
					n++;
				}
			}
			for(int i= 0; i < 12; i++)
					coin[i] = 2;
		}
		for(int j = 0; j < 3;j++){
			inputData[j].clear();
		}
	}

	for(int i = 0; i < num_of_case; i++){
		cout<<result[i]<<endl;
	}

	return 0;
}

  这个代码测试没问题,但提交后的反馈是Runtime Error.

  然后我自己检查下,没发现问题,没办法,先发上来.明天再看看.

posted @ 2013-06-04 22:59  Hat_Cloud  阅读(173)  评论(0)    收藏  举报