QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#640805 | #8936. Team Arrangement | meiqwq | WA | 1ms | 3684kb | C++20 | 1.2kb | 2024-10-14 16:10:11 | 2024-10-14 16:10:11 |
Judging History
answer
#pragma GCC optimize(3)
#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,acc[N];
vector<pr<int,int > >st[N],ed[N];
void dfs(int s,int n,int cur){
if(s==n){
int i,j,flg=1;
//set<pr<int,int> >S;
rep(i,1,cur){
if(acc[i]<cnt[i]*i){flg=0;break;}
}
if(flg){
int sum=0;
//cerr<<"ok:";
rep(i,1,cur)sum+=cnt[i]*w[i];//,cerr<<i<<' '<<cnt[i]<<'\n';
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);
}
}
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(j,l,r)acc[j]++;
}
rep(i,1,n)cin>>w[i];
dfs(0,n,0);
if(ans>(1<<31))cout<<ans;else cout<<"impossible";
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3676kb
input:
3 2 3 1 2 2 2 4 5 100
output:
9
result:
ok single line: '9'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3672kb
input:
3 1 3 3 3 2 3 1 1 100
output:
100
result:
ok single line: '100'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3660kb
input:
2 1 1 2 2 1 1
output:
impossible
result:
ok single line: 'impossible'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3664kb
input:
3 2 3 1 2 2 2 -100 -200 100000
output:
-300
result:
ok single line: '-300'
Test #5:
score: -100
Wrong Answer
time: 0ms
memory: 3684kb
input:
9 1 4 2 5 3 4 1 5 1 1 2 5 3 5 1 3 1 1 1 1 1 1 1 1 1 1 1
output:
7
result:
wrong answer 1st lines differ - expected: '6', found: '7'