QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#640876 | #8936. Team Arrangement | meiqwq | WA | 1ms | 3976kb | C++23 | 1.6kb | 2024-10-14 16:39:07 | 2024-10-14 16:39:07 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define rep(i,j,k) for(i=j;i<=k;++i)
#define dow(i,j,k) for(i=j;i>=k;--i)
#define pr pair
#define mkp make_pair
#define fi first
#define se second
const int N=70;
int cnt[N],n,w[N],ans=1<<31,hsh[N][N];
vector<pr<int,int > >st[N],ed[N];
void dfs(int s,int n,int cur,int sum){
if(s==n){
int i,j,flg=1;
priority_queue<pr<int,int> >S;
if(sum<=ans)return;
rep(i,1,cur){
for(auto v:st[i])hsh[-v.fi][v.se]=0;
for(auto v:ed[i])hsh[-v.fi][v.se]=0;
}
rep(i,1,cur){
for(auto v:st[i]){
S.push(v);
hsh[-v.fi][v.se]++;
}
int req=i*cnt[i];
if(S.size()<req){flg=0;break;}
rep(j,1,req){
pr<int,int>u=S.top();
S.pop();
hsh[-u.fi][u.se]--;
}
for(auto v:ed[i]){
if(hsh[-v.fi][v.se]){flg=0;break;}
}
if(flg==0)break;
}
if(flg){
ans=max(ans,sum);
}
return;
}
if(s+cur>n)return;
int i;
for(i=0;i*(cur+1)+s<=n;++i){
cnt[cur+1]=i;
dfs(s+i*(cur+1),n,cur+1,sum+i*w[cur+1]);
}
}
int main(){freopen("in.txt","r",stdin);
ios::sync_with_stdio(false);
cin>>n;
int i,j;
rep(i,1,n){
int l,r;cin>>l>>r;
st[l].push_back(mkp(-r,i));ed[r].push_back(mkp(-r,i));
}
rep(i,1,n)cin>>w[i];
//rep(i,1,n)w[i]=-100;
dfs(0,n,0,0);
if(ans>(1<<31))cout<<ans;else cout<<"impossible";
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3976kb
input:
3 2 3 1 2 2 2 4 5 100
output:
0
result:
wrong answer 1st lines differ - expected: '9', found: '0'