QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#686232 | #8936. Team Arrangement | zhenzitou | RE | 0ms | 0kb | C++14 | 2.1kb | 2024-10-29 09:19:32 | 2024-10-29 09:19:33 |
Judging History
answer
#include <bits/stdc++.h>
//#pragma GCC optimize(2,3,"Ofast","inline","-ffast-math")
using namespace std;
template<typename TP> inline TP read()
{
char ch=getchar();
while(ch!='-' && !isdigit(ch))ch=getchar();
TP rst=0;bool mns=0;
if(ch=='-'){mns=1;ch=getchar();}
while(isdigit(ch)){rst=(rst<<3)+(rst<<1)+ch-'0';ch=getchar();}
return mns?-rst:rst;
}
namespace fileIO
{
inline void wi(){cerr<<"No file input.\n";}
inline void wo(){cerr<<"No file output.\n";}
inline void fi(string i)
{
if(i=="")wi();else cerr<<"Using file input "<<i<<'\n';
freopen(i.c_str(),"r",stdin);
}
inline void fo(string o)
{
if(o=="")wo();else cerr<<"Using file output "<<o<<'\n';
freopen(o.c_str(),"w",stdout);
}
inline void fI(string nm){nm==""?wi():fi(nm+".in");}
inline void fO(string nm){nm==""?wo():fo(nm+".out");}
inline void f(string nm){fI(nm),fO(nm);}
}
inline void main_init()
{
fileIO::f("io");
ios::sync_with_stdio(0),cin.tie(),cout.tie();
}
int n,w[69],ans=-1000000001;
vector<int> a[69];
list<int> CNT;
inline bool check()
{
priority_queue<int> q;
int nw=0;
list<int> cnt=CNT;
while(!cnt.empty())
{
int u=cnt.front();
cnt.pop_front();
while(nw<u)
{
++nw;
for(int &v:a[nw])q.push(-v);
}
int lft=u;
while(lft--)
{
if(q.empty()||-q.top()<u)return 0;
q.pop();
}
}
return 1;
}
inline void dfs(int u,int v,int mn)
{
if(u>n){if(check())ans=max(ans,v);return;}
for(int i=mn;i<=n-u+1;++i)
{
CNT.push_back(i);
dfs(i+u,v+w[i],i);
CNT.pop_back();
}
}
inline void main_solve()
{
n=read<int>();
for(int i=1;i<=n;++i)
{
int l=read<int>(),r=read<int>();
a[l].push_back(r);
}
for(int i=1;i<=n;++i)w[i]=read<int>();
dfs(1,0,1);
if(ans==-1000000001)puts("impossible");else printf("%d",ans);
}
int main(){main_init();main_solve();return 0;}
詳細信息
Test #1:
score: 0
Dangerous Syscalls
input:
3 2 3 1 2 2 2 4 5 100