QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#794890#9549. The MagicianKafuuChinocpp#WA 0ms1648kbC++142.2kb2024-11-30 16:41:212024-11-30 16:41:21

Judging History

This is the latest submission verdict.

  • [2024-11-30 16:41:21]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 1648kb
  • [2024-11-30 16:41:21]
  • Submitted

answer

#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;

int T, n, t[6];
int cnt[5];
int need[5], cpy[5], ans;

void Dfs ( int now, int sum )
{
    if ( now == 4 )
    {
        int leave = 0;
        for ( int i = 0; i < 4; i ++ )
            cpy[i] = need[i];
        for ( int i = 0; i < 4; i ++ )
            if ( cnt[i] > cpy[i] )
                leave += cnt[i] - cpy[i];
            
        for ( int i = 0; i < 4; i ++ )
        {
            if ( cnt[i] < cpy[i] && t[i] )
            {
                int v = min(cpy[i] - cnt[i], min(leave, 3));
                cpy[i] -= v;
                leave -= v;
            }
        }
        
        for ( int i = 0; i < 4; i ++ )
        {
            if ( cnt[i] < cpy[i] && t[4] )
            {
                int v = min(1, leave);
                cpy[i] -= v;
                leave -= v;
            }
        }
        for ( int i = 0; i < 4; i ++ )
        {
            if ( cnt[i] < cpy[i] && t[5] )
            {
                int v = min(1, leave);
                cpy[i] -= v;
                leave -= v;
            }
        }
        
        bool flag = true;
        for ( int i = 0; i < 4; i ++ )
            if ( cnt[i] < cpy[i] )
                flag = false;
        
        if ( flag )
            ans = max(ans, sum / 5);
    }
    else
    {
        for ( int i = 0; i * 5 + sum <= n; i ++ )
        {
            need[now] = i * 5;
            Dfs(now + 1, sum + i * 5);
        }
    }
    return;
}

void Work ()
{
    char s[10];
    scanf("%d", &n);
    memset(cnt, 0, sizeof(cnt));
    for ( int i = 1; i <= n; i ++ )
    {
        scanf("%s", s);
        if ( s[1] == 'D' || s[0] == 'D' )
            ++cnt[0];
        else if ( s[1] == 'C' || s[0] == 'C' )
            ++cnt[1];
        else if ( s[1] == 'H' || s[0] == 'H' )
            ++cnt[2];
        else
            ++cnt[3];
    }

    for ( int i = 0; i < 6; i ++ )
        scanf("%d", &t[i]);
    
    ans = 0;
    Dfs(0, 0);

    printf("%d\n", ans);

    return;
}

int main ()
{
    scanf("%d", &T);
    while ( T -- )
        Work();

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 1612kb

input:

4
5
2H 3H 4H 5H 6D
1 1 1 1 0 0
5
2S 3S 4D 5C 6D
0 0 1 0 1 1
5
2S 3S 4D 5C 6D
0 0 1 0 1 0
13
AS 2S 3S 4S 5H 6H 7H 8H 9H TH JH QH KH
0 0 0 0 0 1

output:

1
1
0
2

result:

ok 4 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 1636kb

input:

13
10
AD 2D 3D 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2D 3D 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2H 3D 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2H 3H 4D 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AH 2H 3H 4H 5D 6D 7D 8D 9D TD
0 0 1 0 0 0
10
AS 2S 3S 4S 5S 6S 7S 8S 9S TS
0 1 0 0 0 0
10
AC 2S 3S 4S 5S 6S 7S 8S ...

output:

2
1
2
2
2
2
1
2
2
2
0
0
0

result:

ok 13 lines

Test #3:

score: 0
Accepted
time: 0ms
memory: 1648kb

input:

2
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH JD JC JS QH QD QC QS KH KD KC KS
1 1 1 1 1 1
52
AH AD AC AS 2H 2D 2C 2S 3H 3D 3C 3S 4H 4D 4C 4S 5H 5D 5C 5S 6H 6D 6C 6S 7H 7D 7C 7S 8H 8D 8C 8S 9H 9D 9C 9S TH TD TC TS JH J...

output:

10
10

result:

ok 2 lines

Test #4:

score: 0
Accepted
time: 0ms
memory: 1588kb

input:

9
12
2H TH 4C QC JH JC 8D KC 3C 6H TC 9S
0 0 0 1 0 0
11
5S 2C TH 8S JD 2S 7D AH 4S AC TS
1 0 0 0 0 0
11
QC 4C 5S QS 9H 5H 6H 7H 3D 7D 8D
1 1 1 0 1 1
11
AS AD 3D 8C 5H 2S JC 6C 8H QD JS
0 1 0 0 0 1
11
KC TH 4S 2H 8S 9S QC 3S AD KS 5D
0 0 1 0 0 1
12
4D 5H 6C 3D KH KS 3S 7S TC 4S 4C JS
0 1 0 1 1 0
12
J...

output:

1
2
2
1
2
2
2
2
2

result:

ok 9 lines

Test #5:

score: 0
Accepted
time: 0ms
memory: 1592kb

input:

10
10
5S 6S 4S 2D JD 3H JH 2H 4H 2C
1 1 0 1 0 0
11
3H 2D 6D 7S KD 6C 8H 2S 9H KH 3D
0 1 0 1 0 1
11
4D AH TS 6S TC 3S 9C 3C 5S JH TD
0 1 0 1 0 0
10
9H 3S TC TS 8S 6S TH 7D TD 5D
0 0 0 0 0 1
11
5H KS QH 4D 8H 6H QC 7H 8D JS JC
0 0 1 0 0 0
10
AD 5D TC 8D 5C 5S 8S QS 3C JD
0 0 0 1 0 1
10
TC TH 4S 8C JC ...

output:

2
2
2
1
1
2
2
1
2
2

result:

ok 10 lines

Test #6:

score: 0
Accepted
time: 0ms
memory: 1532kb

input:

2
52
4S 5H AD 9D 9C 4C 9S QD 2C JS 2D 3S 3D AC QS 5S KD 4D KH 9H TC 6C 6S 7D 7C KS 3H 6H KC JC AH 8H QH 3C QC TS 8C TH TD 4H 7S 6D 8S AS 5C JD JH 2H 5D 2S 8D 7H
0 0 0 1 1 1
52
9S JC 8S 2D 2S TS 4C 2C 6D KS 5H KD AH 5D 8C KC QH 6C 4D 9C 8H 5C 3H JH TD QS AC AS QC 6H 4H 7D QD 9D TH 4S 2H JD TC JS 7C A...

output:

10
10

result:

ok 2 lines

Test #7:

score: 0
Accepted
time: 0ms
memory: 1604kb

input:

3
35
9H JC 2H TH 7S 6D AS 4H 3D AD KS TS 2C 9S 5D 8H KD TC KH 5C QD 4S 3C 6C JS AC 2D JD 3H QH 9D 5S 6S JH 5H
0 1 0 0 1 0
34
TS 2H 4H 9D KD JC QS 6C 2D QD 2S JS 7C JH 7H 8H 4S 3C AD QC AS 7D KC 8S 2C 3S 8C 5D 5C AC TD 3H 4C 9H
0 1 1 1 0 0
35
6C 9H 3D TC 4D 3H 2S 8D AS JD 6H 2C 5D QH TD 9D 3S 5C 9C A...

output:

7
6
5

result:

ok 3 lines

Test #8:

score: -100
Wrong Answer
time: 0ms
memory: 1536kb

input:

10
10
AC 7C 9S KD 4S 2C 2S 3D 6D 7H
1 1 0 1 0 1
10
9D AS 8S JS 6C KS 4D 3D 2S QC
0 1 0 0 0 0
10
QC 5H 5D 2S 7S 8S 3D 8C TS 8H
1 0 1 1 0 1
10
KD 7D 8S TC 3S 6C AS 4C 9H KC
1 0 0 0 0 0
11
8C 2C JS 6C QC 2H 5C 9H 3C AS 9D
1 0 1 0 1 0
10
8H 5D 5C QH JS JC 6H 4H 8C 7C
0 0 0 1 1 0
13
9H 4S 8D 3H KD TC 2D ...

output:

2
2
2
1
2
2
2
2
1
1

result:

wrong answer 6th lines differ - expected: '1', found: '2'