結果

問題 No.324 落ちてた閉路グラフ
ユーザー h_noson
提出日時 2016-06-19 17:48:06
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
TLE  
実行時間 -
コード長 868 bytes
コンパイル時間 1,006 ms
コンパイル使用メモリ 64,984 KB
実行使用メモリ 10,276 KB
最終ジャッジ日時 2024-10-11 12:53:53
合計ジャッジ時間 7,151 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other TLE * 1 -- * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;

#define REP(i,s,e) for (i = s; i <= e; i++)
#define rep(i,n) REP (i,0,(int)(n)-1)
#define RREP(i,s,e) for (i = s; i >= e; i--)
#define rrep(i,n) RREP (i,(int)(n)-1,0)
#define INF (int)1e8
#define MOD (int)(1e9+7)

typedef long long ll;

int w[3000];
int n;

int dfs(int pre, int now, int m, bool fst) {
    int ret1, ret2 = -INF;
    if (now < n) {
        ret1 = dfs(pre,now+1,m,fst);
        if (m > 0)
            ret2 = dfs(now,now+1,m-1,fst) + (pre + 1 == now ? w[pre] : 0);
    }
    else if (m > 0)
        ret1 = -INF;
    else
        ret1 = fst && pre + 1 == now ? w[n-1] : 0;
    return max(ret1,ret2);
}

int main(void) {
    int i, m;
    cin >> n >> m;
    rep (i,n) cin >> w[i];
    cout << max(dfs(0,1,m-1,true),dfs(-1,1,m,false)) << endl;
    return 0;
}
0