結果
| 問題 | 
                            No.1823 Tricolor Dango
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2022-01-28 21:23:53 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 102 ms / 2,000 ms | 
| コード長 | 536 bytes | 
| コンパイル時間 | 2,493 ms | 
| コンパイル使用メモリ | 196,764 KB | 
| 最終ジャッジ日時 | 2025-01-27 16:03:08 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 25 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main(){
    int t;cin>>t;
    for(int tt=0;tt<t;tt++){
    int n, k=3; cin >> n;
    vector<long long> v(n);
    for(long long &x : v) cin >> x;
    long long ok = 0, ng = 1e18 / k;
    while(ng - ok > 1){
        long long md = (ok + ng) / 2, sum = 0;
        for(long long x : v) sum += min(x, md);
        if(sum >= k * md) ok = md;
        else ng = md;
    }
    long long sum=0;
    for(long long x:v)sum+=x;
    if(3*ok==sum)cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    }
}