제출 #112871

#제출 시각아이디문제언어결과실행 시간메모리
112871MercenaryTents (JOI18_tents)C++14
100 / 100
120 ms71076 KiB
#include<bits/stdc++.h>

using namespace std;
#define taskname "A"
#define pb	push_back
#define mp 	make_pair
#ifndef LOCAL
#define cerr if(0)cout
#endif

typedef long double ld;
typedef long long ll;
typedef pair<int,int> ii;
const int maxn = 3e3 + 5;
const int mod = 1e9 + 7;

ll dp[maxn][maxn];
int n , m;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    if(fopen(taskname".INP","r")){
		freopen(taskname".INP", "r",stdin);
		freopen(taskname".OUT", "w",stdout);
    }
    cin >> n >> m;
    for(int i = 0 ; i < maxn ; ++i)dp[i][0] = dp[0][i] = 1;
    for(int i = 1 ; i <= n ; ++i){
        for(int j = 1 ; j <= m ; ++j){
            if(i > 1 && j > 1){
                dp[i][j] =  dp[i][j - 1] +
                            dp[i - 1][j - 1] * i * 4 +
                            dp[i - 2][j - 1] * i * (i - 1) / 2 +
                            dp[i - 1][j - 2] * i * (j - 1);
            }
            else if(i > 1){
                dp[i][j] =  dp[i][j - 1] +
                            dp[i - 1][j - 1] * i * 4 +
                            dp[i - 2][j - 1] * i * (i - 1) / 2;
            }else if(j > 1){
                dp[i][j] =  dp[i][j - 1] +
                            dp[i - 1][j - 1] * i * 4 +
                            dp[i - 1][j - 2] * i * (j - 1);
            }else{
                dp[i][j] =  dp[i][j - 1] +
                            dp[i - 1][j - 1] * i * 4;
            }
            if(dp[i][j] >= mod)dp[i][j] %= mod;
        }
    }
    cout << dp[n][m] - 1;
}

컴파일 시 표준 에러 (stderr) 메시지

tents.cpp: In function 'int main()':
tents.cpp:25:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   freopen(taskname".INP", "r",stdin);
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
tents.cpp:26:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   freopen(taskname".OUT", "w",stdout);
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...