結果
問題 | No.1231 Make a Multiple of Ten |
ユーザー |
![]() |
提出日時 | 2020-09-18 22:41:55 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 115 ms / 2,000 ms |
コード長 | 1,012 bytes |
コンパイル時間 | 1,568 ms |
コンパイル使用メモリ | 172,724 KB |
実行使用メモリ | 28,224 KB |
最終ジャッジ日時 | 2024-06-23 13:51:35 |
合計ジャッジ時間 | 3,038 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 13 |
ソースコード
#include <bits/stdc++.h>//#include <chrono>//#pragma GCC optimize("Ofast")using namespace std;#define reps(i,s,n) for(int i = s; i < n; i++)#define rep(i,n) reps(i,0,n)#define Rreps(i,n,e) for(int i = n - 1; i >= e; --i)#define Rrep(i,n) Rreps(i,n,0)#define ALL(a) a.begin(), a.end()#define fi first#define se secondtypedef long long ll;typedef vector<ll> vec;typedef vector<vec> mat;ll N,M,H,W,Q,K,A,B;string S;typedef pair<ll, ll> P;const ll INF = (1LL<<60);template<class T> bool chmin(T &a, const T &b){if(a > b) {a = b; return true;}else return false;}template<class T> bool chmax(T &a, const T &b){if(a < b) {a = b; return true;}else return false;}int main() {cin>>N;vec a(N);mat dp(N + 1, vec(10, -INF));dp[0][0] = 0;rep(i, N){cin>>a[i];a[i] %= 10;rep(j, 10){chmax(dp[i + 1][j], dp[i][j]);chmax(dp[i + 1][(j + a[i]) % 10], dp[i][j] + 1);}}cout<<dp[N][0]<<endl;}