QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#344701#7964. 转化knightzzz1#WA 123ms39680kbC++173.1kb2024-03-04 22:29:322024-03-04 22:29:33

Judging History

你现在查看的是最新测评结果

  • [2024-03-04 22:29:33]
  • 评测
  • 测评结果:WA
  • 用时:123ms
  • 内存:39680kb
  • [2024-03-04 22:29:32]
  • 提交

answer

#include<bits/stdc++.h>

using namespace std;
const int N = 4e5 ;
using ll = long long;
int n,l,r;
ll ans[ N ];
double p;

struct node{
    ll a, b , c , d ,id ;
    bool operator < ( const  node  nd ){
        return c > nd.c ;
    }
}v[ N ] ;

vector< node > ab , a0 ,b0 ,zo ;



void slove(){
    cin >> n ;
    bool fg = false ;
    for( int i = 1 ; i <= n ; i++ ){
        cin >> v[ i ].a ; v[ i ].id = i ;
    }
    for( int i = 1 ; i <= n ; i++ ){
        cin >> v[ i ].b ;
    }
    for( int i = 1 ; i <= n ; i++ ){
        cin >> v[ i ].c ;
        v[ i ].d = min( v[i].a + v[ i ].c , v[ i ].b ) ;
        if( v[ i ].a && v[ i ].b ){
            ab.push_back( v[ i ] ) ;
        }else if( !v[ i ].a && v[ i ].b ){
            a0.push_back( v[ i ] ) ;
        }else if( v[ i ].a && !v[ i ].b ){
            b0.push_back( v[ i ] ) ;
        }else{
            zo.push_back( v[ i ] ) ;
        }
    }
    sort( ab.begin() , ab.end() ) ; sort( a0.begin() , a0.end() ) ; 
    sort( b0.begin() , b0.end() ) ; sort( zo.begin() , zo.end() ) ;
    ll tran_cnt = 0 ;
    ll sum = 0 ;
    ll cntab = 0 , cntb = 0 , cntbooo = 0  ; 
    bool fgab = false , fgb = false ;
    for(int i = 0 ; i < ab.size() ; i ++ ){
        sum += ( ab[ i ].a + ab[ i ].c ) ;
        tran_cnt += ab[ i ].d;
        if( ab[ i ].b > ab[ i ].a + ab[ i ].c ) fgab = true ;
        cntab += ab[ i ].d;
    }
    for(int i = 0 ; i < a0.size() ; i ++ ){
        sum += ( a0[ i ].a + a0[ i ].c ) ;
        //tran_cnt += v[ i ].d;
    }
    for(int i = 0 ; i < b0.size() ; i ++ ){
        if( tran_cnt ){
            if( b0[ i ].b == b0[ i ].c ){
                cntbooo++;
            }
            sum += ( b0[ i ].a + b0[ i ].c ) ;

            tran_cnt += min( b0[ i ].b , b0[ i ].a + b0[ i ].c + 1 );
            cntb += min( b0[ i ].b , b0[ i ].a + b0[ i ].c + 1 );
            if( b0[ i ].b > b0[ i ].a + b0[ i ].c ){
                fgb = true ;
            }
        }
    }
    ll cnt = tran_cnt ;
    for(int i = 0 ; i < zo.size() ; i ++ ){
        if( cnt ){
            sum += ( zo[ i ].a + zo[ i ].c ) ;
            cnt -- ;
            //tran_cnt += min( v[ i ].b , v[ i ].a + v[ i ].c + 1 );
        }
    }


    for(int i = 0 ; i < ab.size() ; i ++ ){
        ans[ ab[ i ].id ] = cntab - ab[ i ].b + ab[ i ].a + ab[ i ].c ;
        ans[ ab[ i ].id ] -= cntbooo ;
    }
    for(int i = 0 ; i < a0.size() ; i ++ ){
        ans[ a0[ i ].id ] = cntab + cntb - cntbooo ;
    }
    for(int i = 0 ; i < b0.size() ; i ++ ){
        ans[ b0[ i ].id ] = cntab + cntb ;
        ans[ b0[ i ].id ] -= cntbooo ;
    }
    
    for(int i = 0 ; i < zo.size() ; i ++ ){
        ans[ zo[ i ].id ] = cntab + cntb - cntbooo ;
    }
    for(int i = 1 ; i <= n ; i++ ){
        cout << ans[ i ] << " " ;
    }
    cout << endl;
    cout << sum << endl;
}

int main(){
 
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(false);    

    int T  = 1 ; 
    // cin >> T ;
    while( T -- ){
        slove();
    }
    
    return 0;      
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 123ms
memory: 39680kb

input:

351493
0 37836791 46095966 46912389 21595941 0 3 86568894 3 0 0 0 0 39910208 0 2 4 86885825 1 67660833 0 24488082 52447896 0 67190942 70457491 11166998 90470470 11095822 0 0 5 47222930 2 49736354 0 0 0 77339472 0 5 3 0 25347727 0 3 2 0 48844622 0 65142757 1 73733079 80634668 46683173 0 31644647 9760...

output:

42482492819203 42482492819203 42482321050432 42482502170700 42482492819203 42482492819203 42482548571563 42482492819203 42482864801662 42482492819203 42482492819203 42482492819203 42482492819203 42482052854879 42482492819203 42482687628444 42482570776928 42482492819203 42482651991328 42482492819203 ...

result:

wrong answer 1st lines differ - expected: '60073965049724 60073472376204 ...4 60073701685447 60073472376204', found: '42482492819203 42482492819203 ... 42482492819203 42482492819203 '