結果
問題 | No.1825 Except One |
ユーザー |
|
提出日時 | 2022-02-01 21:48:42 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 142 ms / 3,000 ms |
コード長 | 591 bytes |
コンパイル時間 | 1,698 ms |
コンパイル使用メモリ | 173,716 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-11 09:14:27 |
合計ジャッジ時間 | 3,916 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 31 |
ソースコード
#include<bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); long long N; cin>>N; vector<long long>A(N); for(long long &i:A)cin>>i; sort(A.begin(),A.end()); vector<vector<long long>>dp(N+1,vector<long long>(N*100+1)); dp[0][0]=1; long long ans=0; for(long long i=0;i<N;i++){ for(long long j=N;j>1;j--){ for(long long k=N*100;k>=A[i];k--){ dp[j][k]+=dp[j-1][k-A[i]]; if(k%(j-1)==0&&k/(j-1)>=A[i]){ ans+=dp[j-1][k-A[i]]; } } } dp[1][A[i]]+=1; } cout<<ans<<'\n'; }