QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#89295#5260. The Gamesky3142#WA 0ms3368kbC++203.3kb2023-03-19 16:28:132023-03-19 16:28:14

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-19 16:28:14]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3368kb
  • [2023-03-19 16:28:13]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;

using LL = long long;
vector<int> cards, hand, up1, up2, down1, down2;
int top = 8;
int trick()
{
    for(int i=0;i<hand.size();i++)
        if(hand[i])
        {
            if(hand[i] < up1.back() && hand[i]+10==up1.back())
            {
                up1.push_back(hand[i]);
                hand.erase(hand.begin()+i);
                return 1;
            }
            if(hand[i] < up2.back() && hand[i]+10==up2.back())
            {
                up2.push_back(hand[i]);
                hand.erase(hand.begin()+i);
                return 1;
            }
            if(hand[i] > down1.back() && hand[i]-10==down1.back())
            {
                down1.push_back(hand[i]);
                hand.erase(hand.begin()+i);
                return 1;
            }
            if(hand[i] > down2.back() && hand[i]-10==down2.back())
            {
                down2.push_back(hand[i]);
                hand.erase(hand.begin()+i);
                return 1;
            }
        }
    return 0;
}

int reg()
{
    int minv = 100, k = -1, w = -1;
    for(int i=0;i<hand.size();i++)
        if(hand[i])
        {
            if(hand[i] > up1.back() && hand[i] - up1.back() < minv)
            {
                minv = hand[i] - up1.back();
                k = i;
                w= 1;
            }
            if(hand[i] > up2.back() && hand[i] - up2.back() < minv)
            {
                minv = hand[i] - up2.back();
                k = i;
                w=2;
            }
            if(hand[i] <down1.back() && down1.back()-hand[i] < minv)
            {
                minv = down1.back()-hand[i];
                k = i;
                w=3;
            }
            if(hand[i] <down2.back() && down2.back()-hand[i] < minv)
            {
                minv = down2.back()-hand[i];
                k = i;
                w=4;
            }
        }
    if(k==-1) return 0;

    if(w == 1) up1.push_back(hand[k]);
    if(w == 2) up2.push_back(hand[k]);
    if(w == 3) down1.push_back(hand[k]);
    if(w == 4) down2.push_back(hand[k]);
    hand.erase(hand.begin()+k);

    return 1;
}

void end()
{
    for(int i : up1) cout << i << ' ';
    cout << '\n';
    for(int i : up2) cout << i << ' ';
    cout << '\n';
    for(int i : down1) cout << i << ' ';
    cout << '\n';
    for(int i : down2) cout << i << ' ';
    cout << '\n';
    for(int i : hand) if(i) cout << i << ' ';
    cout << '\n';
    for(int i=top;i<98;i++) cout << cards[i] << ' ';
    cout << '\n';
}

void next_round()
{
    if(top < 98) hand.push_back(cards[top++]);
    if(top < 98) hand.push_back(cards[top++]);
}

int f(int u)
{
    if(u<=0) return 0;
    int t = trick();
    if(t == 0) t += reg();
    if(t == 0) return 0;
    return t+f(u-t);
}

void solve()
{
    for(int i=0;i<98;i++)
    {
        int x;
        cin >> x;
        cards.push_back(x);
    }
    up1.push_back(1), up2.push_back(1), down1.push_back(100), down2.push_back(100);
    for(int i=0;i<8;i++) hand.push_back(cards[i]);
    while(hand.size())
    {
        if(f(2) < 2)
        {
            end();
            return ;
        }
        next_round();
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3368kb

input:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

output:


result:

wrong answer 1st lines differ - expected: '1 2 3 4 5 6 7 8 9 10 11 12 13 ...9 90 91 92 93 94 95 96 97 98 99', found: ''