Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
cpp
main.cpp 2.9 kB 1 20-Aug-2015 17:35 filip_bujaroski Множење, Олимпијада

This page (revision-8) was last changed on 20-Aug-2015 17:35 by filip_bujaroski

This page was created on 20-Aug-2015 17:35 by bedzo

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 245 added 13 lines
char mat[310][310];
int n,m,pi,pj,ei,ej;
int dp[310][310][4];
bool isvalid(int r,int i, int j,int ri, int rj,int c)
{
for(int k=1;k<=r;k++)
{
int ni=i+ri*k,nj=j+rj*k;
if(ni<0 || ni>=n || nj<0 || nj>=m) return false;
if(mat[ni][nj]=='#') return false;
}
return true;
}
At line 247 changed one line
int n,m,pi,pj,ei,ej;
At line 249 removed one line
char mat[310][310];
At line 266 changed one line
int dp[310][310][4];
At line 279 changed 2 lines
if(r==1)
{
At line 283 changed 11 lines
int ni=i+di[k],nj=j+dj[k];
if(ni>=0 & ni<n & nj>=0 & nj<m)
if(dp[ni][nj][r]==-1 | c+1<dp[ni][nj][r])
if(mat[ni][nj]!='#')
{
dp[ni][nj][r]=c+1;
qi.push(ni);
qj.push(nj);
qc.push(c+1);
t.push(2);
}
int ni=i+di[k]*r,nj=j+dj[k]*r;
if(isvalid(r,i,j,di[k],dj[k],c))
if(dp[ni][nj][r]==-1 || c+1<dp[ni][nj][r])
{
dp[ni][nj][r]=c+1;
qi.push(ni);
qj.push(nj);
qc.push(c+1);
t.push(r%3+1);
}
At line 295 removed 42 lines
}
else if(r==2)
{
for(k=0;k<4;k++){
int ti=i+di[k],tj=j+dj[k];
if(ti<0 | ti>=n | tj<0 | tj>=m) continue;
if(mat[ti][tj]=='#') continue;
int ni=i+di[k]*2,nj=j+dj[k]*2;
if(ni>=0 & ni<n & nj>=0 & nj<m)
if(dp[ni][nj][r]==-1 | c+1<dp[ni][nj][r])
if(mat[ni][nj]!='#')
{
dp[ni][nj][r]=c+1;
qi.push(ni);
qj.push(nj);
qc.push(c+1);
t.push(3);
}
}
}
else
{
for(k=0;k<4;k++){
int ti=i+di[k],tj=j+dj[k];
if(ti<0 | ti>=n | tj<0 | tj>=m) continue;
if(mat[ti][tj]=='#') continue;
ti=i+di[k]*2,tj=j+dj[k]*2;
if(ti<0 | ti>=n | tj<0 | tj>=m) continue;
if(mat[ti][tj]=='#') continue;
int ni=i+di[k]*3,nj=j+dj[k]*3;
if(ni>=0 & ni<n & nj>=0 & nj<m)
if(dp[ni][nj][r]==-1 | c+1<dp[ni][nj][r])
if(mat[ni][nj]!='#')
{
dp[ni][nj][r]=c+1;
qi.push(ni);
qj.push(nj);
qc.push(c+1);
t.push(1);
}
}
}
Version Date Modified Size Author Changes ... Change note
8 20-Aug-2015 17:35 9.808 kB filip_bujaroski to previous
7 20-Aug-2015 17:35 6.838 kB bedzo to previous | to last
6 20-Aug-2015 17:35 5.588 kB bedzo to previous | to last
5 20-Aug-2015 17:35 5.47 kB bedzo to previous | to last
4 20-Aug-2015 17:35 6.684 kB bedzo to previous | to last
3 20-Aug-2015 17:35 5.873 kB bedzo to previous | to last
2 20-Aug-2015 17:35 5.851 kB bedzo to previous | to last
1 20-Aug-2015 17:35 0.516 kB bedzo to last
« This page (revision-8) was last changed on 20-Aug-2015 17:35 by filip_bujaroski