# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
135016 | CaroLinda | 수열 (APIO14_sequence) | C++14 | 3 ms | 508 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define lp(i,a,b) for(int i=a;i<b;i++)
#define pii pair<int,int>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define mk make_pair
const int inf = 0x3f3f3f3f ;
const int MAXN = 12 ;
using namespace std ;
int n , k ;
vector<pii> intervals ;
ll pref[MAXN] , ans = 0 ;
ll get(int i , int j) { return pref[j] - pref[i-1] ; }
int main()
{
scanf("%d%d", &n , &k ) ;
lp(i,1,n+1) scanf("%lld", &pref[i] ) ;
lp(i,1,n+1) pref[i] += pref[i-1] ;
intervals.pb( mk(1,n) ) ;
lp(i,0,k)
{
pair<ll,int> ansK = mk(-1,-1) ;
for( pii myInt : intervals )
lp(j,myInt.ff , myInt.ss)
ansK = max(ansK , mk(get(myInt.ff,j)*get(j+1, myInt.ss), j) ) ;
lp(j,0,intervals.size())
if( intervals[j].ff <= ansK.ff && intervals[j].ss >= ansK.ss )
{
int beg=intervals[j].ff, en=intervals[j].ss ;
intervals[j] = mk(beg,ansK.ss) ;
intervals.pb(mk(ansK.ss+1,en)) ;
break ;
}
ans += ansK.ff ;
}
printf("%lld\n" , ans ) ;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |