提出 #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 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| 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 |