Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Time Limit Exceeded!!!

Posted by Blackwizard at 2012-04-20 16:34:48 on Problem 1166
I've written a program to solve it but it Time Limit Exceeded!!!
please help me to solve it...



#include <iostream>
#include <cmath>
#include <vector>
#include <string>

using namespace std;

int main ()
{
	int RESULT = 28;
	string ANSWER;
	string s ( 9 , ' ' );
	for ( int i = 0 ; i < 9 ; i++ )
		cin >> s[i];
	vector <string> str ( 9 );
	str[0] = "110110000"; 
	str[1] = "111000000"; 
	str[2] = "011011000";
	str[3] = "100100100";
	str[4] = "010111010";
        str[5] = "001001001";
	str[6] = "000110110";
	str[7] = "000000111";
	str[8] = "000011011";
	for ( int i = 0 ; i < pow ( 4. , 9. ) ; i++ )
	{
		int temp = i;
		int sum = 0;
		string ss = s;
		string ans;
		for ( int j = 0 ; temp != 0 ; j++ )
		{
			int mod = temp % 4;
			sum += mod;
			for ( int k = 0 ; k < 9 ; k++ )
				ss[k] = '0' + ( ( ( ss[k] - '0' ) + mod * ( str[j][k] - '0' ) ) % 4 );
			temp /= 4;
			for ( int k = 0 ; k < mod ; k++ )
				ans.push_back ( '0' + j + 1 );
		}
		if ( ss == "000000000" && sum < RESULT )
		{
			RESULT = sum;
			ANSWER = ans;
		}
	}
	for ( int i = 0 ; i < ANSWER.length() - 1 ; i++ )
		cout << ANSWER[i] << " ";
	cout << ANSWER[ ANSWER.length()-1 ] << endl;
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator