結果
| 問題 |
No.974 最後の日までに
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-01-18 00:36:53 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 929 bytes |
| コンパイル時間 | 1,693 ms |
| コンパイル使用メモリ | 84,240 KB |
| 実行使用メモリ | 7,632 KB |
| 最終ジャッジ日時 | 2024-06-26 03:27:04 |
| 合計ジャッジ時間 | 3,960 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 41 WA * 8 |
コンパイルメッセージ
main.cpp:18:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
18 | main()
| ^~~~
ソースコード
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int W;
long A[55],B[55],C[55];
vector<pair<long,long> >X;
void dfs(int d,int lim,long x,long y)
{
if(d==lim)
{
X.push_back(make_pair(y,x));
return;
}
dfs(d+1,lim,x,y+A[d]);
if(d+2<=lim)dfs(d+2,lim,x+B[d+1],y-C[d+1]);
}
main()
{
cin>>W;
for(int i=0;i<W;i++)cin>>A[i]>>B[i]>>C[i];
if(W==1)
{
cout<<0<<endl;
return 0;
}
long ans=0;
for(int mid:(vector<int>){W/2})
{
dfs(0,mid,0,0);
sort(X.rbegin(),X.rend());
vector<pair<long,long> >A;
long pre=-1;
for(pair<long,long>p:X)
{
if(pre<p.second)
{
pre=p.second;
A.push_back(p);
}
}
sort(A.begin(),A.end());
X.clear();
dfs(mid,W,0,0);
for(pair<long,long>p:X)
{
vector<pair<long,long> >::iterator it=lower_bound(A.begin(),A.end(),make_pair(-p.first,0L));
if(it!=A.end())ans=max(ans,p.second+it->second);
}
X.clear();
}
cout<<ans<<endl;
}