Submission #2225795
Source Code Expand
#include <iostream> #include <vector> #include <string> #include <algorithm> #define rep(i,n) for(int (i)=0;(i)<(n);(i)++) #define rep1(i,n) for(int i=1;i<=(int)(n);i++) using namespace std; typedef long long int lli; const lli MOD = 1e9 + 7; lli N, M; int main() { cin >> N >> M; //でかい方をm,小さいほうをnに lli m = N, n = N; if (N<M) m = M; if (N>M) n = M; lli ans = 0; //同じ数,差が1,それ以外で場合分け if (m == n) { //この場合答えは2*n!*n! ans = 1; rep1(i, n) ans = (ans*i) % MOD; ans = (ans*ans) % MOD; ans = (2 * ans) % MOD; } else if (m - n == 1) { //この場合答えは(n+1)*n!*n! ans = 1; rep1(i, n) ans = (ans*i) % MOD; ans = (ans*ans) % MOD; ans = ((n + 1)*ans) % MOD; } cout << ans; }
Submission Info
Submission Time | |
---|---|
Task | C - Reconciled? |
User | spawn |
Language | C++14 (GCC 5.4.1) |
Score | 300 |
Code Size | 804 Byte |
Status | AC |
Exec Time | 2 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 300 / 300 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | s1.txt, s2.txt, s3.txt, s4.txt |
All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, s1.txt, s2.txt, s3.txt, s4.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01.txt | AC | 1 ms | 256 KB |
02.txt | AC | 1 ms | 256 KB |
03.txt | AC | 1 ms | 256 KB |
04.txt | AC | 2 ms | 256 KB |
05.txt | AC | 1 ms | 256 KB |
06.txt | AC | 1 ms | 256 KB |
07.txt | AC | 1 ms | 256 KB |
08.txt | AC | 1 ms | 256 KB |
09.txt | AC | 1 ms | 256 KB |
10.txt | AC | 1 ms | 256 KB |
11.txt | AC | 1 ms | 256 KB |
12.txt | AC | 1 ms | 256 KB |
s1.txt | AC | 1 ms | 256 KB |
s2.txt | AC | 1 ms | 256 KB |
s3.txt | AC | 1 ms | 256 KB |
s4.txt | AC | 1 ms | 256 KB |