답안 #934331

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
934331 2024-02-27T07:28:48 Z alexander707070 Candies (JOI18_candies) C++14
0 / 100
15 ms 4700 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(){

    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    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;

        maxs=0;
        for(int f=1;f<=n;f++){
            if(used[f])maxs++;
        }
        if(maxs!=i)cout<<1/0;

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

    return 0;
}

Compilation message

candies.cpp: In function 'int main()':
candies.cpp:66:27: warning: division by zero [-Wdiv-by-zero]
   66 |         if(maxs!=i)cout<<1/0;
      |                          ~^~
# 결과 실행 시간 메모리 Grader output
1 Runtime error 15 ms 4700 KB Execution killed with signal 4
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 15 ms 4700 KB Execution killed with signal 4
2 Halted 0 ms 0 KB -