제출 #476139

#제출 시각아이디문제언어결과실행 시간메모리
476139tmbaoCalvinball championship (CEOI15_teams)C++14
100 / 100
118 ms532 KiB
#include <bits/stdc++.h> using namespace std; const int mod = 1000007; int main() { // Input int n; cin >> n; vector<int> a; for (int i = 0; i < n; ++i) { int x; cin >> x; a.push_back(x); } // Solve vector<vector<long long>> dp; dp.resize(2); dp[0].resize(n + 1); dp[1].resize(n + 1); for (int i = 0, maxA = 0; i < n; ++i) { maxA = max(maxA, a[i] - 1); int currentI = i & 1; int previousI = currentI ^ 1; for (int j = 1; j <= i + 1; ++j) { dp[currentI][j] = (dp[previousI][j] * j + dp[previousI][j - 1]) % mod; if (j == maxA) { dp[currentI][j] = (dp[currentI][j] + a[i] - 1) % mod; } } maxA = max(maxA, a[i]); } long long ans = 1; for (int i = 1; i <= n; ++i) { ans = (ans + dp[n & 1 ^ 1][i]) % mod; } cout << ans; return 0; }

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

teams.cpp: In function 'int main()':
teams.cpp:38:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   38 |     ans = (ans + dp[n & 1 ^ 1][i]) % mod;
      |                     ~~^~~
#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...