Submission #1371794
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef double db;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pa;
typedef unsigned int uint;
typedef unsigned long long ull;
#define w1 first
#define ls (x<<1)
#define w2 second
#define rs (x<<1|1)
#define mp make_pair
#define pb push_back
#define mid ((l+r)>>1)
#define SZ(x) (int((x).size()))
#define rep(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)
#define rep2(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
#define per(i,a,b) for(int (i)=(a);(i)>=(b);(i)--)
#define Rep(p,x) for(int (p)=head[(x)];(p);(p)=nxt[(p)])
#define Rep2(p,x) for(int (p)=cur[(x)];(p);(p)=nxt[(p)])
template<class T>void read(T&num){
num=0;T f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9')num=num*10+ch-'0',ch=getchar();
num*=f;
}
const int maxn=4e3+5,mod=1e9+7;
int n,m,K,ans;
int dp[2][maxn];
int add(int x,int y){
return x+y>=mod?x+y-mod:x+y;
}
int main(){
read(n);read(m);read(K);
dp[0][0]=1;
rep(i,0,(n+m-1)/(K-1)){
int nxti=i+1;
memset(dp[nxti&1],0,sizeof dp[nxti&1]);
rep(j,0,n)rep(k,1,K-1){
int nxtj=j+k;
if(nxtj>n)continue;
dp[nxti&1][nxtj]=add(dp[nxti&1][nxtj],dp[i&1][j]);
}
rep(j,1,n){
int tot=(K-1)*(i+1);
if(!((j-n)%(K-1))&&!((m-1-(tot-j))%(K-1))&&tot-j<=m-1)ans=add(ans,dp[nxti&1][j]);
}
rep(j,0,n)dp[nxti&1][j]=add(dp[nxti&1][j],dp[i&1][j]);
}
printf("%d\n",ans);
return 0;
}
Submission Info
Submission Time |
|
Task |
E - Eternal Average |
User |
Vegetable |
Language |
C++14 (GCC 5.4.1) |
Score |
1600 |
Code Size |
1469 Byte |
Status |
AC |
Exec Time |
84 ms |
Memory |
256 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1600 / 1600 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt, s3.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, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, s1.txt, s2.txt, s3.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
1 ms |
256 KB |
02.txt |
AC |
84 ms |
256 KB |
03.txt |
AC |
1 ms |
256 KB |
04.txt |
AC |
1 ms |
256 KB |
05.txt |
AC |
42 ms |
256 KB |
06.txt |
AC |
1 ms |
256 KB |
07.txt |
AC |
13 ms |
256 KB |
08.txt |
AC |
1 ms |
256 KB |
09.txt |
AC |
13 ms |
256 KB |
10.txt |
AC |
14 ms |
256 KB |
11.txt |
AC |
13 ms |
256 KB |
12.txt |
AC |
13 ms |
256 KB |
13.txt |
AC |
11 ms |
256 KB |
14.txt |
AC |
7 ms |
256 KB |
15.txt |
AC |
10 ms |
256 KB |
16.txt |
AC |
6 ms |
256 KB |
17.txt |
AC |
11 ms |
256 KB |
18.txt |
AC |
3 ms |
256 KB |
19.txt |
AC |
43 ms |
256 KB |
20.txt |
AC |
17 ms |
256 KB |
21.txt |
AC |
1 ms |
256 KB |
22.txt |
AC |
18 ms |
256 KB |
23.txt |
AC |
11 ms |
256 KB |
24.txt |
AC |
10 ms |
256 KB |
s1.txt |
AC |
1 ms |
256 KB |
s2.txt |
AC |
1 ms |
256 KB |
s3.txt |
AC |
1 ms |
256 KB |