#!/bin/sh f=/tmp/a$$ cat >$f.cpp <<'EOF' #include #include #include #include #include #include #include #include using namespace std; int main(){ const int W=140,H=110,N=W*H,P=29*23,K=11; vector> pos;for(int y=0;y<=H;y+=5)for(int x=0;x<=W;x+=5)pos.push_back({x,y}); vector> pix(P);for(int q=0;q bestS;int best=0;auto start=chrono::steady_clock::now(); for(int rep=0;;rep++){ if(chrono::duration(chrono::steady_clock::now()-start).count()>5.5)break; vector s;vector cnt(N,0);int val=0; for(int k=0;k> cand;cand.reserve(P);for(int q=0;q dd(0,pool-1);int q=cand[P-1-dd(g)].second;s.push_back(q);for(int z:pix[q]){if(cnt[z]++==0)val++;}} uniform_real_distribution U(0,1);uniform_int_distribution SI(0,K-1),QI(0,P-1); for(int it=0;it<15000;it++){int a=SI(g),old=s[a],q=QI(g);if(q==old)continue;int nv=val;for(int z:pix[old])if(--cnt[z]==0)nv--;for(int z:pix[q])if(cnt[z]++==0)nv++;double T=80.0*(1.0-it/15000.0)+.2;if(nv>=val||U(g)bv)bv=v,bq=q;}for(int z:pix[bq])cnt[z]++;s[a]=bq;if(bv>val)val=bv,imp=true;}} if(val>best){best=val;bestS=s;cerr<<"new "<