結果
| 問題 |
No.459 C-VS for yukicoder
|
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2025-06-23 11:50:08 |
| 言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 938 bytes |
| コンパイル時間 | 2,468 ms |
| コンパイル使用メモリ | 170,836 KB |
| 実行使用メモリ | 7,844 KB |
| 最終ジャッジ日時 | 2025-06-23 11:50:15 |
| 合計ジャッジ時間 | 6,197 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 55 RE * 3 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e4+10;
int h,w,n;
char ch;
int a[N],p[N];
vector<int> b[N];
int c[N][3];
int main(){
// freopen("tetris.in","r",stdin);
// freopen("tetris.out","w",stdout);
cin>>h>>w>>n;
for (int i=1;i<=h;i++){
for (int j=1;j<=w;j++){
cin>>ch;
if(ch=='#') a[j]++;
}
}
for (int i=1;i<=n;i++){
cin>>p[i]; p[i]++;
b[p[i]].push_back(i);
}
for (int i=1;i<=w;i++){
for (int j:b[i]){
if(a[i]) c[j][0]++,a[i]--;
else if(i+1<=w&&a[i+1]) c[j][1]++,a[i+1]--;
else if(i+2<=w&&a[i+2]) c[j][2]++,a[i+2]--;
}
}
for (int i=1;i<=w;i++){
for (int j:b[i]){
for (int k=0;k<3;k++){
if(i+k>w) continue;
int add=min(3-c[j][k],a[i+k]);
c[j][k]+=add;
a[i+k]-=add;
}
}
}
for (int i=1;i<=n;i++){
for (int j=1;j<=3;j++){
for (int k=0;k<3;k++){
if(j<=c[i][k]) cout<<'#';
else cout<<'.';
}
cout<<'\n';
}
}
return 0;
}
vjudge1