QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#574290 | #7943. LIS on Grid | rqoi031 | WA | 1ms | 4108kb | C++20 | 1.1kb | 2024-09-18 21:25:03 | 2024-09-18 21:25:07 |
Judging History
answer
#include<stdio.h>
#include<algorithm>
#include<vector>
int a[200005],_a[200005];
char s[200005];
void solve() {
int n,m;
scanf("%d%d",&n,&m);
for(int i=0;i!=m;i++) {
scanf("%d",a+i);
}
int k(0);
while([&]()->bool {
int c(0);
for(int i=0;i!=m;i++) {
c+=std::max(a[i]-k,0);
}
return c>k*(n-k);
}()) {
++k;
}
for(int i=0;i!=m;i++) {
_a[i]=std::max(a[i]-k,0);
}
std::vector<std::vector<bool>> b(n,std::vector<bool>(m,false));
for(int i=k-1;i!=-1;i--) {
for(int j=0,k=i;j!=m;j++) {
b[k][j]=true;
const int d(std::min(n-k-1,_a[j]));
_a[j]-=d;
for(int o=0;o!=d;o++) {
b[++k][j]=true;
}
}
}
std::fill(_a,_a+m,0);
printf("%d\n",k);
for(int i=0;i!=n;i++) {
for(int j=0;j!=m;j++) {
s[j]=b[i][j]&&_a[j]++<a[j]?'#':'.';
}
s[m]='\0';
puts(s);
}
}
int main() {
int t;
scanf("%d",&t);
while(t--) {
solve();
}
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 4108kb
input:
4 2 4 1 1 1 1 3 3 3 3 3 4 4 4 3 2 1 4 5 2 3 4 3 2
output:
1 #### .... 3 ### ### ### 2 ##.. #### #... ###. 2 ###.. ####. .#### ..###
result:
wrong answer Wrong score (test case 3)