結果
| 問題 |
No.498 ワープクリスタル (給料日編)
|
| コンテスト | |
| ユーザー |
nmnmnmnmnmnmnm
|
| 提出日時 | 2017-03-24 23:37:40 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,328 bytes |
| コンパイル時間 | 812 ms |
| コンパイル使用メモリ | 89,204 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-06 01:11:16 |
| 合計ジャッジ時間 | 1,571 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 8 WA * 13 |
ソースコード
#include <algorithm>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
using namespace std;
typedef long long ll;
#define sz size()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(c) (c).begin(), (c).end()
#define rep(i,a,b) for(ll i=(a);i<(b);++i)
#define per(i,a,b) for(ll i=(b-1);i>=(a);--i)
#define clr(a, b) memset((a), (b) ,sizeof(a))
#define ctos(c) string(1,c)
#define print(x) cout<<#x<<" = "<<x<<endl;
#define MOD 1000000007
#define N_MAX 2001
long long fact[N_MAX];
long long modpow(long long a, long long b){
long long r = 1LL;
while(b){
if(b & 1LL)r *= a;
if(r >= MOD)r %= MOD;
a *= a;
if(a >= MOD)a %= MOD;
b >>= 1LL;
}
return r;
}
int main(){
clr(fact,0);
fact[0]=1;
rep(i,1,N_MAX){
fact[i] = fact[i-1]*i;
fact[i] %= MOD;
}
ll gx,gy,k;
cin>>gx>>gy>>k;
ll dx[5];clr(dx,0);
ll dy[5];clr(dy,0);
ll dc[5];clr(dc,0);
rep(i,0,k){
ll a,b,c;
cin>>a>>b>>c;
dx[i] = a;
dy[i] = b;
dc[i] = c;
}
ll ans = 0;
rep(a,0,dc[0]+1){
rep(b,0,dc[1]+1){
rep(c,0,dc[2]+1){
rep(d,0,dc[3]+1){
rep(e,0,dc[4]+1){
ll x = a*dx[0]+b*dx[1]+c*dx[2]+d*dx[3]+d*dx[4];
ll y = a*dy[0]+b*dy[1]+c*dy[2]+d*dy[3]+d*dy[4];
if(x==gx&&y==gy){
ll total = a+b+c+d+e;
ll ans1 = fact[total];
ll a1 = fact[a];
ll b1 = fact[b];
ll c1 = fact[c];
ll d1 = fact[d];
ll e1 = fact[e];
ans1 = ans1 * modpow(a1,MOD-2);
ans1 %= MOD;
ans1 = ans1 * modpow(b1,MOD-2);
ans1 %= MOD;
ans1 = ans1 * modpow(c1,MOD-2);
ans1 %= MOD;
ans1 = ans1 * modpow(d1,MOD-2);
ans1 %= MOD;
ans1 = ans1 * modpow(e1,MOD-2);
ans1 %= MOD;
ans += ans1;
ans %= MOD;
}
}
}
}
}
}
cout << ans << endl;
return 0;
}
nmnmnmnmnmnmnm