結果
| 問題 |
No.1231 Make a Multiple of Ten
|
| コンテスト | |
| ユーザー |
zumin
|
| 提出日時 | 2021-02-25 22:57:42 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 76 ms / 2,000 ms |
| コード長 | 727 bytes |
| コンパイル時間 | 732 ms |
| コンパイル使用メモリ | 70,060 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-01 14:06:21 |
| 合計ジャッジ時間 | 2,833 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 13 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:34:15: warning: 'md' may be used uninitialized [-Wmaybe-uninitialized]
34 | if(rec(cnt,10,i,md)){
| ~~~^~~~~~~~~~~~~
main.cpp:23:9: note: 'md' was declared here
23 | int md;
| ^~
ソースコード
#include <iostream>
#include <vector>
using namespace std;
bool rec(vector<int> cnt,int prev,int res,int md){
if(res==0){
return md==0;
}
bool ans=false;
for(int i=prev-1;i>=1;i--){
for(int j=1;j<=min(cnt[i],res);j++){
cnt[i]-=j;
ans|=rec(cnt,i,res-j,(md-i*j+10*j)%10);
cnt[i]+=j;
}
}
return ans;
}
int main(){
int n;
int md;
vector<int> cnt(10,0);
cin>>n;
for(int i=0;i<n;i++){
int ai;
cin>>ai;
cnt[ai%10]++;
md+=ai;
md%=10;
}
for(int i=0;i<=min(10,n);i++){
if(rec(cnt,10,i,md)){
cout<<n-i<<endl;
return 0;
}
}
return 0;
}
zumin