제출 #221650

#제출 시각아이디문제언어결과실행 시간메모리
221650LawlietCalvinball championship (CEOI15_teams)C++17
70 / 100
12 ms4352 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1010;
const int MOD = 1000007;

int n;

int v[MAXN];
int dp[MAXN][MAXN];

int solve(int i, int j)
{
	int& ans = dp[i][j];

	if( ans != -1 ) return ans;

	if( i == n + 1 ) return ans = 1;

	ans = solve( i + 1 , j + 1 );
	ans += j*solve( i + 1 , j );

	ans %= MOD;
	
	return ans;
}

int main()
{
	scanf("%d",&n);

	memset( dp , -1 , sizeof(dp) );

	for(int i = 1 ; i <= n ; i++)
		scanf("%d",&v[i]);

	int ans = 0;
	int maxValue = 0;

	for(int i = 1 ; i <= n ; i++)
	{
		ans += solve( i + 1 , maxValue )*( v[i] - 1 );

		maxValue = max( maxValue , v[i] );

		ans %= MOD;
	}

	ans++;
	ans %= MOD;

	printf("%d\n",ans);
}

컴파일 시 표준 에러 (stderr) 메시지

teams.cpp: In function 'int main()':
teams.cpp:31:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
teams.cpp:36:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&v[i]);
   ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...