#39685: RE 求解


buanyz03 (張晁瑋)

學校 : 新北市立板橋高級中學
編號 : 2629
來源 : [114.25.190.198]
最後登入時間 :
2023-09-06 15:43:50
f647. 撲克牌 -- 林口高中練習題 | From: [203.69.87.1] | 發表日期 : 2024-03-19 10:56

#include <iostream>
#include <string>
#include <vector>
using namespace std;

string poker[53] =
{   "XX",
    "SA", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "S10", "SJ", "SQ", "SK",
    "HA", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "HJ", "HQ", "HK",
    "DA", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "DJ", "DQ", "DK",
    "FA", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "FJ", "FQ", "FK"
};

int main()
{
    int n,cmd,a,b,d,k;
    vector <int> v,temp,ans;

    for(int i=0;i<52;++i)
    {
        v.push_back(i+1);
    }
    cin>>n;
    while(n--)
    {
        cin>>cmd;
        temp.clear();
        ans.clear();
        if(cmd==1)
        {
            cin>>a>>b;
            a--;
            b--;
            for(int i=a;i<=b;++i)
            {
               temp.push_back(v[a]);
               v.erase(v.begin()+a);
            }

            ans.insert(ans.end(),temp.begin(),temp.end());
            ans.insert(ans.end(),v.begin(),v.end());
        }
        else if(cmd==2)
        {
            cin>>a>>b;
            a--;
            b--;
            for(int i=a;i<=b;++i)
            {
               temp.push_back(v[a]);
               v.erase(v.begin()+a);
            }

            ans.insert(ans.end(),v.begin(),v.end());
            ans.insert(ans.end(),temp.begin(),temp.end());

        }
        else if(cmd==3)
        {
            cin>>k;
            for(int i=52-k;i<52;++i)
            {
               temp.push_back(v[k]);
               v.erase(v.begin()+k);
            }

            ans.insert(ans.end(),temp.begin(),temp.end());
            ans.insert(ans.end(),v.begin(),v.end());
        }
        else
        {
           cin>>k;
           for(int i=0;i<k;++i)
           {
               temp.push_back(v[0]);
               v.erase(v.begin());
           }

           ans.insert(ans.end(),v.begin(),v.end());
           ans.insert(ans.end(),temp.begin(),temp.end());
        }
        v=ans;
    }

    for(int i=0;i<5;++i)
    {
        cout<<poker[v[i]]<<' ';
    }
    cout<<endl;
}


不知道哪裡沒考慮清楚

 
#39730: Re: RE 求解


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
f647. 撲克牌 -- 林口高中練習題 | From: [101.136.241.180] | 發表日期 : 2024-03-23 21:27

            for(int i=52-k;i<52;++i)
            {
               temp.push_back(v[k]);
               v.erase(v.begin()+k);
            }


                temp.push_back(v[52-k]);
                v.erase(v.begin()+52-k);

 
ZeroJudge Forum