# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
934330 | 2024-02-27T07:28:09 Z | alexander707070 | Candies (JOI18_candies) | C++14 | 14 ms | 2528 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+=a[f]; } if(maxs!=sum)cout<<1/0; cout<<sum<<"\n"; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 14 ms | 2528 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 14 ms | 2528 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |