結果
| 問題 |
No.120 傾向と対策:門松列(その1)
|
| コンテスト | |
| ユーザー |
ngtkana
|
| 提出日時 | 2020-03-25 10:38:12 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 18 ms / 5,000 ms |
| コード長 | 812 bytes |
| コンパイル時間 | 2,272 ms |
| コンパイル使用メモリ | 199,168 KB |
| 最終ジャッジ日時 | 2025-01-09 10:07:07 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 |
ソースコード
#include<bits/stdc++.h>
using lint=long long;
int main(){
std::cin.tie(nullptr);std::ios_base::sync_with_stdio(false);
std::cout.setf(std::ios_base::fixed);std::cout.precision(15);
lint q;std::cin>>q;
while(q--){
lint n;std::cin>>n;
std::vector<lint>a(n);
for(lint&x:a)std::cin>>x;
std::sort(a.begin(),a.end());
std::vector<lint>b;
for(lint i=0,j=1;j<=n;j++){
if(j<n&&a.at(j-1)==a.at(j))continue;
b.push_back(j-i);
i=j;
}
std::sort(b.begin(),b.end());
lint m=b.size();
for(lint i=0,K=0,sum=0;K<=n+1;K++){
for(;i<m&&b.at(i)<K;sum+=b.at(i++));
if(sum+(m-i)*K<3*K){
std::cout<<K-1<<'\n';
break;
}
}
}
}
ngtkana