#include using namespace std; long long n,m,suma_svih_vojnika,suma_svih_kula,trenutna_pozx,trenutna_pozy,preziveli,redni_broj_izabranog,brojac_resenja; long long pot_zivih,pocetak,brojac_za_skupljanje,skup; bool bio[50007]; bool imam[50007]; struct slog{ long long x,y,koliko,smrt,id,rastojanje_od_poc; }vojnici[50007],tower[50007]; struct slog2{ long long brV,brK,suma_voj,suma_kul; long long niz_voj[10007],niz_kul[10007]; }blok[15][15]; struct slog3{ long long prvix,prviy,drugix,drugiy,koliko,smrt; }Resenje[50007],Skupljanje[50007]; long long rastojanje(long long X1,long long Y1,long long X2,long long Y2){ return sqrt((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)); } void jedan_blok(int red,int kol){ for(int t=1;t<=blok[red][kol].brK;t++){ long long mini=1e18; for(int i=1;i<=blok[red][kol].brK;i++){ long long iti=blok[red][kol].niz_kul[i]; if(bio[iti])continue; long long ras=rastojanje(trenutna_pozx,trenutna_pozy,tower[iti].x,tower[iti].y); if(ras=potrebno_zivih){ res=sredina; d=sredina-1; } else l= sredina+1; } return res; } void ispis_resavanja_kula(){ for(int i=1;i<=brojac_resenja;i++){ printf("%lld %lld %lld %lld %lld ",Resenje[i].prvix,Resenje[i].prviy,Resenje[i].drugix,Resenje[i].drugiy,Resenje[i].smrt); /*cout<>n>>m; long long tip; for(long long i=1;i<=n;i++){ cin>>vojnici[i].x>>vojnici[i].y>>vojnici[i].koliko; vojnici[i].id=i; suma_svih_vojnika+=vojnici[i].koliko; vojnici[i].rastojanje_od_poc=rastojanje(13,3,vojnici[i].x,vojnici[i].y); } for(long long i=1;i<=m;i++){cin>>tower[i].x>>tower[i].y>>tower[i].koliko;tower[i].id=i;tip=max(tip,tower[i].koliko);} for(int i=1;i<=m;i++){ int r=tower[i].y/100000000; int k=tower[i].x/100000000; blok[r][k].brK++; blok[r][k].niz_kul[blok[r][k].brK ]=tower[i].id; } brojac_resenja=0; trenutna_pozx=13; trenutna_pozy=3; preziveli=suma_svih_vojnika; for(int red=0;red<=9;red++){ if(red%2==0)for(int kol=0;kol<=9;kol++)jedan_blok(red,kol); else for(int kol=9;kol>=0;kol--)jedan_blok(red,kol); } for(int i=brojac_resenja;i>=1;i--){ pot_zivih = minimalno(Resenje[i].koliko,pot_zivih); Resenje[i].smrt=pot_zivih; } pocetak=Resenje[1].smrt; skup=0; brojac_za_skupljanje=0; sort(vojnici+1,vojnici+n+1,cmp); Poskupljaj(); cout<<50000+brojac_za_skupljanje<