地址:http://pat.zju.edu.cn/contests/pat-a-practise/1042
用一个函数确定最终位置,用map存起来。
//Date : 2014-02-24
//Author : fibonacci
//Note:
#include <cstdio>
#include <map>
#include <string>
using namespace std;
int K, arr[55];
string str_arr[] = { "occupy",
"S1" , "S2" , "S3" , "S4" , "S5" , "S6" , "S7" , "S8" , "S9" , "S10" , "S11" , "S12" , "S13" ,
"H1" , "H2" , "H3" , "H4" , "H5" , "H6" , "H7" , "H8" , "H9" , "H10" , "H11" , "H12" , "H13" ,
"C1" , "C2" , "C3" , "C4" , "C5" , "C6" , "C7" , "C8" , "C9" , "C10" , "C11" , "C12" , "C13" ,
"D1" , "D2" , "D3" , "D4" , "D5" , "D6" , "D7" , "D8" , "D9" , "D10" , "D11" , "D12" , "D13" ,
"J1" , "J2" };
void init()
{
scanf( "%d", &K);
for( int i = 1; i <= 54; ++i)
{
scanf( "%d" , arr+i);
}
}
int get_postion(int pos)
{
for( int i = 0; i < K; ++i)
pos = arr[pos];
return pos;
}
int main()
{
int final_pos;
map< int, string> res;
init();
for( int i = 1; i<=54; ++i)
{
final_pos = get_postion(i);
res[final_pos] = str_arr[i];
}
for( int i = 1; i<=54; ++i)
{
i == 1 ? printf( "%s" , res[i].c_str()) : printf(" %s" , res[i].c_str());
}
return 0;
}