Submission #2202386


Source Code Expand

#include <cstdio>
#include <algorithm>
using namespace std;
#define ref(i,x,y)for(int i=x;i<=y;++i)
#define def(i,x,y)for(int i=x;i>=y;--i)
const int mod=1e9+7;
void inc(int&a,int b){
	a+=b;if(a>=mod)a-=mod;
}
int n,ans,a[100],f[100][100][51][51],g[100][100][51][51];bool b[100];
int main(){
	scanf("%d",&n);
	ref(i,1,2*n-1)scanf("%d",&a[i]);
	sort(a+1,a+2*n);
	ref(i,1,n-1)if(a[i+1]!=a[i])b[i]=1;b[n]=1;
	ref(i,n+1,2*n-1)if(a[i-1]!=a[i])b[i]=1;
	f[n][n][1][1]=1;
	def(ti,n,2){
		//printf("%d\n",f[4][4][1][1]);
		ref(L,1,2*n-1)ref(i,ti,2*n-L){
			int j=i+L-1;
			if(2*n-j<ti)continue;
			ref(t,1,n-ti+1)ref(k,1,t)if(f[i][j][t][k]){
				//if(i==4&&j==4&&t==1&&k==1)printf("%d\n",ti);
				int s=f[i][j][t][k];
				ref(K,1,k-1) inc(g[i][j][t-(k-K-1)][K],s);
				ref(K,k+1,t) inc(g[i][j][t-(K-k-1)][k+1],s);
				inc(g[i][j][t][k],s);
				ref(I,(ti-1),i-1) if(b[I]) inc(g[I][j][t-kl+2][1],s);
				ref(J,j+1,2*n-ti+1) if(b[J]) inc(g[i][J][k+1][k+1],s);
			}
		}
		ref(i,1,2*n-1)ref(j,1,2*n-1)ref(t,1,n-ti+2)ref(k,1,t)
			f[i][j][t][k]=g[i][j][t][k],g[i][j][t][k]=0;
	}
	ref(i,1,2*n-1)ref(j,i,2*n-1)ref(t,1,n)ref(k,1,t)
		inc(ans,f[i][j][t][k]);
	printf("%d\n",ans);
}

Submission Info

Submission Time
Task F - Prefix Median
User fangyoule
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1200 Byte
Status CE

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:29:46: error: ‘kl’ was not declared in this scope
     ref(I,(ti-1),i-1) if(b[I]) inc(g[I][j][t-kl+2][1],s);
                                              ^
./Main.cpp:12:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
./Main.cpp:13:33: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  ref(i,1,2*n-1)scanf("%d",&a[i]);
                                 ^