Submission #259531

# Submission time Handle Problem Language Result Execution time Memory
259531 2020-08-08T01:33:38 Z tqbfjotld Fishing Game (RMI19_fishing) C++14
0 / 100
329 ms 404992 KB
#include <bits/stdc++.h>
using namespace std;

long long memo[205][205][205][3][2];
const long long MOD = 1000000007LL;

long long func(int p12,int p13,int p23,int cur,bool disc){
    if (p12==0 && p13==0&&p23==0) return 1;
    if (memo[p12][p13][p23][cur][disc]!=-1) return memo[p12][p13][p23][cur][disc];
    if (cur==0){
        long long ans = 0;
        if (p12>0){
            ans += p12*func(p12-1,p13,p23,1,false);
        }
        ans %= MOD;
        if (p13>0){
            ans += p13*func(p12,p13-1,p23+1,1,disc);
        }
        ans %= MOD;
        return memo[p12][p13][p23][cur][disc] = ans;
    }
    if (cur==1){
        long long ans = 0;
        if (p12>0){
            ans += p12*func(p12-1,p13+1,p23,2,disc);
        }
        ans %= MOD;
        if (p23>0){
            ans += p23*func(p12,p13,p23-1,2,false);
        }
        ans %= MOD;
        return memo[p12][p13][p23][cur][disc] = ans;
    }
    if (cur==2){
        if (disc){
            long long ans = 0;
            if (p13>0){
                ans += p13*func(p12,p13-1,p23,0,true);
            }
            ans %= MOD;
            return memo[p12][p13][p23][cur][disc] = ans;
        }
        else{
            long long ans = 0;
            if (p13>0){
                ans += p13*func(p12,p13-1,p23,0,true);
            }
            ans %= MOD;
            if (p23>0){
                ans += p23*func(p12+1,p13,p23-1,0,true);
            }
            ans %= MOD;
            return memo[p12][p13][p23][cur][disc] = ans;
        }
    }
}

int match[305];

int main(){
    //printf("%d\n",sizeof(memo));
    memset(memo,-1,sizeof(memo));
    int n,T;
    scanf("%d%d",&n,&T);
    while (T--){
        memset(match,-1,sizeof(match));
        int c12=0,c13=0,c23=0;
        for (int x = 0; x<2*n; x++){
            int t;
            scanf("%d",&t);match[t] = 0;
        }
        for (int x = 0; x<2*n; x++){
            int t;
            scanf("%d",&t);
            if (match[t]==0){
                c12++;
            }
            match[t] = 1;
        }
        for (int x = 0; x<2*n; x++){
            int t;
            scanf("%d",&t);
            if (match[t]==0){
                c13++;
            }
            else if (match[t]==1){
                c23++;
            }
            match[t] = 2;
        }
        //printf("nums %d %d %d\n",c12,c13,c23);
        printf("%lld\n",func(c12,c13,c23,0,true));
    }
}

Compilation message

fishing.cpp: In function 'long long int func(int, int, int, int, bool)':
fishing.cpp:56:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
fishing.cpp: In function 'int main()':
fishing.cpp:64:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&T);
     ~~~~~^~~~~~~~~~~~~~
fishing.cpp:70:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&t);match[t] = 0;
             ~~~~~^~~~~~~~~
fishing.cpp:74:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&t);
             ~~~~~^~~~~~~~~
fishing.cpp:82:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&t);
             ~~~~~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 201 ms 404984 KB Output isn't correct
2 Incorrect 203 ms 404984 KB Output isn't correct
3 Incorrect 202 ms 404956 KB Output isn't correct
4 Incorrect 200 ms 404984 KB Output isn't correct
5 Incorrect 213 ms 404984 KB Output isn't correct
6 Incorrect 228 ms 404984 KB Output isn't correct
7 Incorrect 244 ms 404992 KB Output isn't correct
8 Incorrect 267 ms 404984 KB Output isn't correct
9 Incorrect 295 ms 404984 KB Output isn't correct
10 Incorrect 329 ms 404984 KB Output isn't correct