cf633div2

https://codeforces.com/contest/1339

質問B

意味はとてもシンプルです

ソート後、真ん中の2つの項目の絶対値が最も小さく、出力の順序はl、r

#import <bits / stdc ++。h> ネームスペースstd を使用;
int i、k、n、t、a [ 100005 ]; int main(){ 
    ios :: sync_with_stdio(0 ); 
    cin >> t;
    while(t-- ){ 
        cin >> n;
        for(i = 0 ; i <n; i ++ 
            cin >> a [i]; 
        sort(a、a + n); 
        k =(n- 1)/ 2 ;
        for(i = 0 ; i <n; i ++

 

){
             if(i&1)cout << a [k +(i + 1)/ 2 ] << '  ' ;
            それ以外の場合は、 cout << a [k-i / 2 ] << '  ' ; 
        } 
        cout << endl; 
    } 
}

 

質問C

私の考えは正しいです

後者が前者よりも小さい場合は、後者から前者への変更の最小数を確認します

最小のものから最大のものを見つける

 

問題は、コードが誤って書かれていることです

#include <bits / stdc ++。h>
 using  namespace std;
#define int long long
 int t、n、a;
int maxa、ans; 
signed main(){ 
    // freopen( "in"、 "r"、stdin); 
    ios :: sync_with_stdio(0 ); 
    cin >> t;
    while(t-- ){ 
        cin >> n; cin >> maxa; 
        ans = 0 ; // 变化次数
        forint i = 1 ; i <n; i ++ ){ 
            cin >> a;
            もし(a <maxa)ans = max(ans、maxa- a);
             if(a> maxa)maxa = a; // 最大数を見つける

        cout <<(int)(ceil(log2(ans + 1))) << endl; 
    } 
}

 

おすすめ

転載: www.cnblogs.com/xcfxcf/p/12689197.html