답안 #934133

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
934133 2024-02-26T20:56:29 Z alexander707070 Candies (JOI18_candies) C++14
0 / 100
13 ms 2908 KB
#include<bits/stdc++.h>
#define MAXN 500007
using namespace std;

const long long inf=1e17;

int n,best;
long long a[MAXN],sum,maxs,curr;
bool used[MAXN];

long long calc(int x){
    long long res=a[x];

    for(int i=x-1;used[i] and i>=1;i-=2){
        res-=a[i]; res+=a[i-1];
    }
    for(int i=x+1;used[i] and i<=n;i+=2){
        res-=a[i]; res+=a[i+1];
    }

    return res;
}

void mark(int x){
    used[x]=true;

    for(int i=x-1;used[i] and i>=1;i-=2){
        used[i]=false; 
        used[i-1]=true;
    }
    for(int i=x+1;used[i] and i<=n;i+=2){
        used[i]=false;
        used[i+1]=true;
    }
}

int main(){

    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }

    for(int i=1;i<=n/2+n%2;i++){
        maxs=-inf;
        for(int f=1;f<=n;f++){
            if(used[f])continue;

            curr=calc(f);
            if(curr>maxs){
                maxs=curr; best=f;
            }
        }
        mark(best); sum+=maxs;

        cout<<sum<<"\n";
    }

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 13 ms 2908 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 13 ms 2908 KB Output isn't correct
2 Halted 0 ms 0 KB -