Submission #2620892
Source Code Expand
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define sqr(x) ((x)*(x)) #define mp make_pair #define uint unsigned #define PI pair<int,int> inline char gc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++; } #define gc getchar inline int read(){ int x = 0; char ch = gc(); bool positive = 1; for (; !isdigit(ch); ch = gc()) if (ch == '-') positive = 0; for (; isdigit(ch); ch = gc()) x = x * 10 + ch - '0'; return positive ? x : -x; } inline void write(int a){ if(a<0){ a=-a; putchar('-'); } if(a>=10)write(a/10); putchar('0'+a%10); } inline void writeln(int a){ if(a<0){ a=-a; putchar('-'); } write(a); puts(""); } inline int rnd(int x){ return rand()%x; } inline ull rnd(){ return ((ull)rand()<<30^rand())<<4|rand()%4; } const int N=4005,mod=1000000007; int n,m,k,dp[N],ans; inline void add(int &a,int b){ a=a+b>=mod?a+b-mod:a+b; } signed main(){ n=read(); m=read(); k=read(); swap(n,m); int jb=k-1; dp[0]=1; for(int i=0;i<(n+m-1)/(k-1);i++){ int meiju=min(n,i*(k-1)),mmm=min(n,(i+1)*(k-1)); for(int j=1;j<=meiju;j++)add(dp[j],dp[j-1]); for(int j=meiju;j>=0;j--){ if(j+k<=mmm)add(dp[j+k],mod-dp[j]); if(j+((n-j)%jb==0?jb:(n-j)%jb)<=n&&(i+1)*jb-(j+((n-j)%jb==0?jb:(n-j)%jb))<m)ans=(ans+dp[j])%mod; //cout<<dp[j]<<" "<<i<<" "<<j<<" "<<(i+1)*jb-(j+(n-j)%jb)<<endl; } } cout<<(ans+mod)%mod<<endl; }
Submission Info
Submission Time | |
---|---|
Task | E - Eternal Average |
User | wzp |
Language | C++14 (GCC 5.4.1) |
Score | 1600 |
Code Size | 1539 Byte |
Status | AC |
Exec Time | 56 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 | 56 ms | 256 KB |
03.txt | AC | 1 ms | 256 KB |
04.txt | AC | 1 ms | 256 KB |
05.txt | AC | 29 ms | 256 KB |
06.txt | AC | 7 ms | 256 KB |
07.txt | AC | 1 ms | 256 KB |
08.txt | AC | 1 ms | 256 KB |
09.txt | AC | 3 ms | 256 KB |
10.txt | AC | 2 ms | 256 KB |
11.txt | AC | 2 ms | 256 KB |
12.txt | AC | 1 ms | 256 KB |
13.txt | AC | 2 ms | 256 KB |
14.txt | AC | 1 ms | 256 KB |
15.txt | AC | 2 ms | 256 KB |
16.txt | AC | 1 ms | 256 KB |
17.txt | AC | 1 ms | 256 KB |
18.txt | AC | 2 ms | 256 KB |
19.txt | AC | 3 ms | 256 KB |
20.txt | AC | 8 ms | 256 KB |
21.txt | AC | 1 ms | 256 KB |
22.txt | AC | 8 ms | 256 KB |
23.txt | AC | 2 ms | 256 KB |
24.txt | AC | 2 ms | 256 KB |
s1.txt | AC | 1 ms | 256 KB |
s2.txt | AC | 1 ms | 256 KB |
s3.txt | AC | 1 ms | 256 KB |