pat advanced 1042

本文介绍了一个函数用于确定最终位置,并利用map进行存储的方法,详细展示了实现过程和应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地址: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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值