提出 #49041


ソースコード 拡げる

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <list>
#include <map>
#include <set>
#include <iomanip>

#ifdef __DEBUG
	#define TRC(var) std::clog << #var << ": " << var << std::endl
	#define MSG(what) std::clog << what << std::endl
	#define PAUSE system("pause")
#else
	#define TRC(var)
	#define MSG(what)
	#define PAUSE
#endif //#ifdef __DEBUG

#define CIN(var) std::cin >> var
#define RES(res) std::cout << res << std::endl

#ifdef _WIN32
template<typename _Ty> std::ostream& operator<<(std::ostream& left, std::vector<_Ty> right){
	std::vector<_Ty>::iterator  i = right.begin();
	left << '{';
	if(!right.empty()){
		left << *i;
	}
	while(++i != right.end()){
		left << ',' << ' ' << *i;
	}
	left << '}';
	return left;
}

template<typename _Ty> std::ostream& operator<<(std::ostream& left, std::list<_Ty> right){
	std::list<_Ty>::iterator  i = right.begin();
	left << '{';
	if(!right.empty()){
		left << *i;
	}
	while(++i != right.end()){
		left << ',' << ' ' << *i;
	}
	left << '}';
	return left;
}

template<typename _Ty> std::ostream& operator<<(std::ostream& left, std::set<_Ty> right){
	std::set<_Ty>::iterator  i = right.begin();
	left << '{';
	if(!right.empty()){
		left << *i;
	}
	while(++i != right.end()){
		left << ',' << ' ' << *i;
	}
	left << '}';
	return left;
}
#endif //#ifdef _WIN32

using std::vector;
using std::list;
using std::set;
using std::map;
using std::string;
using std::stringstream;

string inttostr(int const& n){
	stringstream sstr;
	sstr << n << std::flush;
	return sstr.str();
}

int strtoint(string const& str){
	stringstream sstr;
	sstr << str << std::flush;
	int n;
	sstr >> n;
	return n;
}

vector<char> vec(10);

int decode(string str){
	for(string::iterator i = str.begin(); i != str.end(); ++i){
		*i = vec[*i - '0'];
	}
	return strtoint(str);
}

struct num{
	int otogi;
	int act;
};

int main(){
	for(int i = 0; i < 10; ++i){
		int k;
		std::cin >> k;
		vec[k] = i + '0';
	}

	TRC(vec);

	int n;
	CIN(n);

	list<num> li;
	for(int i = 0; i < n; ++i){
		num x;
		string str;
		CIN(str);
		x.otogi = strtoint(str);
		x.act = decode(str);
		TRC(x.otogi);
		TRC(x.act);
		for(list<num>::iterator j = li.begin(); j != li.end(); ++j){
			if((*j).act > x.act){
				li.insert(j, x);
				TRC((*j).otogi);
				goto inserted;
			}
		}
		MSG("リスト末尾に到達");
		li.push_back(x);
inserted:;
		MSG("挿入完了");
	}

	MSG("ここから答え");
	for(list<num>::const_iterator j = li.begin(); j != li.end(); ++j){
		RES(j->otogi);
	}

	PAUSE;
}

提出情報

提出日時
問題 B - おとぎの国の高橋君
ユーザ Kt_Sz
言語 C++ (G++ 4.6.4)
得点 100
コード長 2661 Byte
結果 AC
実行時間 30 ms
メモリ 804 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 45
セット名 テストケース
All 00_sample1.txt, 00_sample2.txt, 00_sample3.txt, 00_sample4.txt, 00_sample5.txt, 01_rand_00.txt, 01_rand_01.txt, 01_rand_02.txt, 01_rand_03.txt, 01_rand_04.txt, 01_rand_05.txt, 01_rand_06.txt, 01_rand_07.txt, 01_rand_08.txt, 01_rand_09.txt, 01_rand_10.txt, 01_rand_11.txt, 01_rand_12.txt, 01_rand_13.txt, 01_rand_14.txt, 01_rand_15.txt, 01_rand_16.txt, 01_rand_17.txt, 01_rand_18.txt, 01_rand_19.txt, 02_maxrand_00.txt, 02_maxrand_01.txt, 02_maxrand_02.txt, 02_maxrand_03.txt, 02_maxrand_04.txt, 02_maxrand_05.txt, 02_maxrand_06.txt, 02_maxrand_07.txt, 02_maxrand_08.txt, 02_maxrand_09.txt, 02_maxrand_10.txt, 02_maxrand_11.txt, 02_maxrand_12.txt, 02_maxrand_13.txt, 02_maxrand_14.txt, 02_maxrand_15.txt, 02_maxrand_16.txt, 02_maxrand_17.txt, 02_maxrand_18.txt, 02_maxrand_19.txt
ケース名 結果 実行時間 メモリ
00_sample1.txt AC 22 ms 772 KiB
00_sample2.txt AC 21 ms 784 KiB
00_sample3.txt AC 20 ms 788 KiB
00_sample4.txt AC 21 ms 784 KiB
00_sample5.txt AC 20 ms 784 KiB
01_rand_00.txt AC 21 ms 788 KiB
01_rand_01.txt AC 21 ms 792 KiB
01_rand_02.txt AC 22 ms 788 KiB
01_rand_03.txt AC 25 ms 796 KiB
01_rand_04.txt AC 21 ms 788 KiB
01_rand_05.txt AC 22 ms 788 KiB
01_rand_06.txt AC 22 ms 792 KiB
01_rand_07.txt AC 21 ms 784 KiB
01_rand_08.txt AC 24 ms 792 KiB
01_rand_09.txt AC 21 ms 788 KiB
01_rand_10.txt AC 21 ms 772 KiB
01_rand_11.txt AC 22 ms 792 KiB
01_rand_12.txt AC 21 ms 768 KiB
01_rand_13.txt AC 21 ms 784 KiB
01_rand_14.txt AC 23 ms 776 KiB
01_rand_15.txt AC 22 ms 780 KiB
01_rand_16.txt AC 22 ms 784 KiB
01_rand_17.txt AC 22 ms 796 KiB
01_rand_18.txt AC 25 ms 792 KiB
01_rand_19.txt AC 21 ms 800 KiB
02_maxrand_00.txt AC 27 ms 788 KiB
02_maxrand_01.txt AC 27 ms 788 KiB
02_maxrand_02.txt AC 27 ms 788 KiB
02_maxrand_03.txt AC 26 ms 780 KiB
02_maxrand_04.txt AC 26 ms 784 KiB
02_maxrand_05.txt AC 29 ms 776 KiB
02_maxrand_06.txt AC 27 ms 784 KiB
02_maxrand_07.txt AC 27 ms 736 KiB
02_maxrand_08.txt AC 27 ms 732 KiB
02_maxrand_09.txt AC 27 ms 796 KiB
02_maxrand_10.txt AC 27 ms 792 KiB
02_maxrand_11.txt AC 30 ms 804 KiB
02_maxrand_12.txt AC 27 ms 788 KiB
02_maxrand_13.txt AC 27 ms 800 KiB
02_maxrand_14.txt AC 27 ms 792 KiB
02_maxrand_15.txt AC 27 ms 784 KiB
02_maxrand_16.txt AC 27 ms 784 KiB
02_maxrand_17.txt AC 27 ms 788 KiB
02_maxrand_18.txt AC 28 ms 792 KiB
02_maxrand_19.txt AC 28 ms 784 KiB