QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#802888 | #9574. Strips | Kogenta2010 | WA | 0ms | 3716kb | C++14 | 1.4kb | 2024-12-07 15:04:55 | 2024-12-07 15:04:56 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
struct cell{
int col;
int pos;
bool operator <(const cell &b){
return pos<b.pos;
}
}c[maxn];
int ans[maxn];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--){
int n,m,k,w;
cin>>n>>m>>k>>w;
for(int i=1;i<=n;i++){
cin>>c[i].pos;
c[i].col=1;
}
for(int i=1;i<=m;i++){
cin>>c[n+i].pos;
c[n+i].col=2;
}
int adjustment,st=0,strip_cnt=0,strip_cnt_rec=0;
sort(c+1,c+1+(n+m));
c[n+m+1].pos=w+1;
c[n+m+1].col=2;
bool jd=1;
for(int i=1;i<=n+m+1;i++){
if(c[i].col==2){
if(c[i].pos<=st-adjustment){//must be covered by a strip no matter what
jd=0;
break;
}
else if(c[i].pos<=st){
//cout<<"Found!"<<endl;
for(int j=strip_cnt;j>strip_cnt_rec;j--){
//cout<<"Adjustting for strip No."<<j<<endl;
ans[j]-=st-c[i].pos+1;
}
}
adjustment=0;
st=c[i].pos;
strip_cnt_rec=strip_cnt;
}
else{
if(c[i].pos-st-1<0)continue;
adjustment+=c[i].pos-1-st;
if(adjustment>=k){
adjustment%=k;
strip_cnt_rec=strip_cnt;
}
ans[++strip_cnt]=c[i].pos;
st=c[i].pos+k-1;
}
}
if(!jd){
cout<<-1<<endl;
}
else{
cout<<strip_cnt<<endl;
for(int i=1;i<=strip_cnt;i++){
cout<<ans[i]<<" ";
}
cout<<endl;
}
}
return 0;
}
/*
1
4 1 2 11
8 6 4 10
9
*/
詳細信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3716kb
input:
4 5 2 3 16 7 11 2 9 14 13 5 3 2 4 11 6 10 2 1 11 2 1 2 6 1 5 3 2 1 2 6 1 5 2
output:
4 2 6 10 14 -1 2 1 5 -1
result:
wrong answer There is no stripe covering red cell 9 (test case 1)