結果
| 問題 | No.3410 Happiest Art |
| コンテスト | |
| ユーザー |
👑 tails
|
| 提出日時 | 2025-12-17 05:41:10 |
| 言語 | cLay (20241019-1 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 573 ms / 4,000 ms |
| コード長 | 1,304 bytes |
| 記録 | |
| コンパイル時間 | 2,645 ms |
| コンパイル使用メモリ | 193,844 KB |
| 実行使用メモリ | 47,820 KB |
| 最終ジャッジ日時 | 2025-12-17 05:41:19 |
| 合計ジャッジ時間 | 7,089 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 44 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:131:7: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
131 | read(0,rbuf,1<<21);
| ~~~~^~~~~~~~~~~~~~
ソースコード
ull r[100][100];
if(1){
Rand g;
rep(y,100){
rep(x,100){
r[y][x]=(ull)g.get()<<32^g.get();
}
}
}
char rbuf[1<<21],*rp=rbuf;
read(0,rbuf,1<<21);
auto rd=[&](){int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;return _v;};
ll n=rd();
ll u=rd();
ll h=rd();
ll w=rd();
rp+=(2+h*(w+1))*n;
ll best_v=-1;
char* best_s=0;
unordered_map<ull,ll> m;
rrep(i,n){
*rp=0;
rp-=h*(w+1);
char*p=rp;
ull b=0;
rep(y,h){
rep(x,w){
if(*p++=='#'){
b^=r[y][x];
}
}
++p;
}
if(i<u){
ll v=++m[b];
if(best_v<v){
best_v=v;
best_s=rp;
}
}else{
--m[b];
}
if(rp[-2]=='1'){
ll by=-1;
ll bx=-1;
rep(y,h){
rep(x,w){
ull b1=b^r[y][x];
if(i<u){
ll v=++m[b1];
if(best_v<v){
best_v=v;
best_s=rp;
by=y;
bx=x;
}
}else{
--m[b1];
}
}
}
if(by>=0){
best_s[by*(w+1)+bx]^='.'^'#';
}
}
rp-=2;
}
if(best_v<0){
char sbuf[10101];
best_v=-200;
best_s=sbuf;
rp+=2;
rep(y,h){
rep(x,w){
rp[y*(w+1)+x]='.';
}
}
ull b=0;
unsigned t=0;
while(1){
ll v=m[b];
if(best_v<v){
best_v=v;
memcpy(best_s,rp,h*(w+1)+1);
if(best_v==0){
break;
}
}
unsigned c=__builtin_ctz(++t);
ll y=c/w;
ll x=c%w;
if(y>=h){
break;
}
b^=r[y][x];
rp[y*(w+1)+x]^='.'^'#';
}
}
wt(best_v);
wtN(best_s);
tails