Re: 929 - Number Maze
Posted: Mon Apr 09, 2012 8:02 am
Did you read the rest of this thread? 10 normal queues in a ring to make a priority queue for this problem is fast enough.
Code: Select all
Code removed after AC, problem in deleting from the heap.
Code: Select all
1
33
16
4 6 9 7 6 0 3 4 6 0 8 5 1 2 1 8
9 6 0 3 8 7 1 3 3 4 1 2 9 5 5 3
4 4 3 0 6 6 6 2 9 6 7 2 1 0 1 0
6 1 3 6 0 4 9 5 1 3 7 0 8 2 5 4
8 8 6 4 7 4 6 6 1 5 8 2 5 1 2 3
4 7 0 4 2 1 9 5 4 8 5 5 2 0 9 2
9 8 6 6 2 4 4 5 1 4 9 8 6 3 2 0
1 4 7 5 5 8 0 0 7 5 5 1 7 6 4 8
4 2 6 9 7 0 4 0 5 4 9 3 7 3 3 0
9 2 5 6 1 5 8 0 2 3 1 0 2 5 0 6
8 7 7 7 9 2 9 6 8 0 9 7 3 5 8 4
7 3 1 0 1 9 0 3 5 2 5 7 9 8 5 9
5 3 8 6 7 8 3 5 8 2 2 4 9 2 8 7
6 1 9 9 1 0 2 8 4 0 7 5 8 2 5 5
7 3 1 4 3 4 1 4 9 4 0 8 8 8 7 4
2 7 5 5 9 0 3 3 0 0 8 0 4 5 5 2
1 8 8 6 5 0 0 6 6 0 6 4 1 4 1 3
3 6 8 2 6 3 7 8 3 7 8 7 3 5 1 6
6 0 2 1 2 3 7 8 5 3 4 6 9 5 1 2
4 9 6 2 4 3 1 7 3 1 7 6 9 8 4 5
0 6 8 2 1 7 2 7 2 7 3 2 4 5 6 8
6 5 3 1 8 6 0 1 7 9 9 8 8 3 5 0
2 3 3 3 2 7 0 5 4 6 7 1 3 5 1 1
0 4 4 1 0 5 4 0 4 4 8 4 9 4 7 3
9 2 7 2 9 9 7 6 7 6 7 0 1 8 4 2
3 8 5 3 5 9 5 2 5 4 8 7 0 5 0 1
7 9 3 9 1 2 5 8 8 2 1 2 2 5 6 5
5 1 1 1 0 6 5 6 2 3 3 2 1 5 4 8
5 9 9 6 2 4 4 2 8 7 4 1 2 0 8 8
3 9 1 4 8 6 2 0 1 5 5 2 0 9 3 7
0 2 3 2 7 0 7 7 7 1 8 0 4 7 0 7
8 3 3 6 1 5 9 2 2 4 5 5 5 8 2 7
2 6 2 1 8 9 9 5 0 7 7 6 6 9 4 5
Code: Select all
#include<stdio.h>
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
int Mat[1004][1004],Value[1004][1004];
struct data {
int city, dist,city2;
bool operator < ( const data& p ) const {
return dist > p.dist;
}
};
int main()
{
int I,K,L,M,N,Case=0,R,C;
scanf("%d",&Case);
while(Case--)
{
scanf("%d %d",&R,&C);
for(I=1;I<=R;I++)
for(K=1;K<=C;K++)
{
scanf("%d",&Mat[I][K]);
Value[I][K]=10000;
}
data A, B;
A.city=1,A.dist=Mat[1][1],A.city2=1;
Value[1][1]=Mat[1][1];
priority_queue<data>Q;
Q.push(A);
while(!Q.empty())
{
A=Q.top();
Q.pop();
//if(A.city==R&&A.city2==C) break;
if(A.city-1>0&&Value[A.city-1][A.city2]>Mat[A.city-1][A.city2]+A.dist)
{
B.city=A.city-1,B.city2=A.city2;
Value[A.city-1][A.city2]=Mat[A.city-1][A.city2]+A.dist;
B.dist=Value[A.city-1][A.city2];
Q.push(B);
//if(B.city==R&&B.city2==C) break;
}
if(A.city+1<=R&&Value[A.city+1][A.city2]>Mat[A.city+1][A.city2]+A.dist)
{
B.city=A.city+1,B.city2=A.city2;
Value[A.city+1][A.city2]=Mat[A.city+1][A.city2]+A.dist;
B.dist=Value[A.city+1][A.city2];
Q.push(B);
//if(B.city==R&&B.city2==C) break;
}
if(A.city2-1>0&&Value[A.city][A.city2-1]>Mat[A.city][A.city2-1]+A.dist)
{
B.city=A.city,B.city2=A.city2-1;
Value[A.city][A.city2-1]=Mat[A.city][A.city2-1]+A.dist;
B.dist=Value[A.city][A.city2-1];
Q.push(B);
//if(B.city==R&&B.city2==C) break;
}
if(A.city2+1<=C&&Value[A.city][A.city2+1]>Mat[A.city][A.city2+1]+A.dist)
{
B.city=A.city,B.city2=A.city2+1;
Value[A.city][A.city2+1]=Mat[A.city][A.city2+1]+A.dist;
B.dist=Value[A.city][A.city2+1];
Q.push(B);
//if(B.city==R&&B.city2==C) break;
}
}
printf("%d\n",Value[R][C]);
}
return 0;
}
i knew that !!!brianfry713 wrote:brianfry713 wrote:Input:AC output: 123Code: Select all
1 33 16 4 6 9 7 6 0 3 4 6 0 8 5 1 2 1 8 9 6 0 3 8 7 1 3 3 4 1 2 9 5 5 3 4 4 3 0 6 6 6 2 9 6 7 2 1 0 1 0 6 1 3 6 0 4 9 5 1 3 7 0 8 2 5 4 8 8 6 4 7 4 6 6 1 5 8 2 5 1 2 3 4 7 0 4 2 1 9 5 4 8 5 5 2 0 9 2 9 8 6 6 2 4 4 5 1 4 9 8 6 3 2 0 1 4 7 5 5 8 0 0 7 5 5 1 7 6 4 8 4 2 6 9 7 0 4 0 5 4 9 3 7 3 3 0 9 2 5 6 1 5 8 0 2 3 1 0 2 5 0 6 8 7 7 7 9 2 9 6 8 0 9 7 3 5 8 4 7 3 1 0 1 9 0 3 5 2 5 7 9 8 5 9 5 3 8 6 7 8 3 5 8 2 2 4 9 2 8 7 6 1 9 9 1 0 2 8 4 0 7 5 8 2 5 5 7 3 1 4 3 4 1 4 9 4 0 8 8 8 7 4 2 7 5 5 9 0 3 3 0 0 8 0 4 5 5 2 1 8 8 6 5 0 0 6 6 0 6 4 1 4 1 3 3 6 8 2 6 3 7 8 3 7 8 7 3 5 1 6 6 0 2 1 2 3 7 8 5 3 4 6 9 5 1 2 4 9 6 2 4 3 1 7 3 1 7 6 9 8 4 5 0 6 8 2 1 7 2 7 2 7 3 2 4 5 6 8 6 5 3 1 8 6 0 1 7 9 9 8 8 3 5 0 2 3 3 3 2 7 0 5 4 6 7 1 3 5 1 1 0 4 4 1 0 5 4 0 4 4 8 4 9 4 7 3 9 2 7 2 9 9 7 6 7 6 7 0 1 8 4 2 3 8 5 3 5 9 5 2 5 4 8 7 0 5 0 1 7 9 3 9 1 2 5 8 8 2 1 2 2 5 6 5 5 1 1 1 0 6 5 6 2 3 3 2 1 5 4 8 5 9 9 6 2 4 4 2 8 7 4 1 2 0 8 8 3 9 1 4 8 6 2 0 1 5 5 2 0 9 3 7 0 2 3 2 7 0 7 7 7 1 8 0 4 7 0 7 8 3 3 6 1 5 9 2 2 4 5 5 5 8 2 7 2 6 2 1 8 9 9 5 0 7 7 6 6 9 4 5
>> i think the correct answer is 119, not 123 isn't it ?mahade hasan wrote:i knew that !!!brianfry713 wrote:brianfry713 wrote:Input:AC output: 123Code: Select all
1 33 16 4 6 9 7 6 0 3 4 6 0 8 5 1 2 1 8 9 6 0 3 8 7 1 3 3 4 1 2 9 5 5 3 4 4 3 0 6 6 6 2 9 6 7 2 1 0 1 0 6 1 3 6 0 4 9 5 1 3 7 0 8 2 5 4 8 8 6 4 7 4 6 6 1 5 8 2 5 1 2 3 4 7 0 4 2 1 9 5 4 8 5 5 2 0 9 2 9 8 6 6 2 4 4 5 1 4 9 8 6 3 2 0 1 4 7 5 5 8 0 0 7 5 5 1 7 6 4 8 4 2 6 9 7 0 4 0 5 4 9 3 7 3 3 0 9 2 5 6 1 5 8 0 2 3 1 0 2 5 0 6 8 7 7 7 9 2 9 6 8 0 9 7 3 5 8 4 7 3 1 0 1 9 0 3 5 2 5 7 9 8 5 9 5 3 8 6 7 8 3 5 8 2 2 4 9 2 8 7 6 1 9 9 1 0 2 8 4 0 7 5 8 2 5 5 7 3 1 4 3 4 1 4 9 4 0 8 8 8 7 4 2 7 5 5 9 0 3 3 0 0 8 0 4 5 5 2 1 8 8 6 5 0 0 6 6 0 6 4 1 4 1 3 3 6 8 2 6 3 7 8 3 7 8 7 3 5 1 6 6 0 2 1 2 3 7 8 5 3 4 6 9 5 1 2 4 9 6 2 4 3 1 7 3 1 7 6 9 8 4 5 0 6 8 2 1 7 2 7 2 7 3 2 4 5 6 8 6 5 3 1 8 6 0 1 7 9 9 8 8 3 5 0 2 3 3 3 2 7 0 5 4 6 7 1 3 5 1 1 0 4 4 1 0 5 4 0 4 4 8 4 9 4 7 3 9 2 7 2 9 9 7 6 7 6 7 0 1 8 4 2 3 8 5 3 5 9 5 2 5 4 8 7 0 5 0 1 7 9 3 9 1 2 5 8 8 2 1 2 2 5 6 5 5 1 1 1 0 6 5 6 2 3 3 2 1 5 4 8 5 9 9 6 2 4 4 2 8 7 4 1 2 0 8 8 3 9 1 4 8 6 2 0 1 5 5 2 0 9 3 7 0 2 3 2 7 0 7 7 7 1 8 0 4 7 0 7 8 3 3 6 1 5 9 2 2 4 5 5 5 8 2 7 2 6 2 1 8 9 9 5 0 7 7 6 6 9 4 5
but Don't know where my logic doesn't work????
i think that too. isn't 119?brianfry713 wrote:>> i think the correct answer is 119, not 123 isn't it ?brianfry713 wrote:Input:AC output: 123Code: Select all
1 33 16 4 6 9 7 6 0 3 4 6 0 8 5 1 2 1 8 9 6 0 3 8 7 1 3 3 4 1 2 9 5 5 3 4 4 3 0 6 6 6 2 9 6 7 2 1 0 1 0 6 1 3 6 0 4 9 5 1 3 7 0 8 2 5 4 8 8 6 4 7 4 6 6 1 5 8 2 5 1 2 3 4 7 0 4 2 1 9 5 4 8 5 5 2 0 9 2 9 8 6 6 2 4 4 5 1 4 9 8 6 3 2 0 1 4 7 5 5 8 0 0 7 5 5 1 7 6 4 8 4 2 6 9 7 0 4 0 5 4 9 3 7 3 3 0 9 2 5 6 1 5 8 0 2 3 1 0 2 5 0 6 8 7 7 7 9 2 9 6 8 0 9 7 3 5 8 4 7 3 1 0 1 9 0 3 5 2 5 7 9 8 5 9 5 3 8 6 7 8 3 5 8 2 2 4 9 2 8 7 6 1 9 9 1 0 2 8 4 0 7 5 8 2 5 5 7 3 1 4 3 4 1 4 9 4 0 8 8 8 7 4 2 7 5 5 9 0 3 3 0 0 8 0 4 5 5 2 1 8 8 6 5 0 0 6 6 0 6 4 1 4 1 3 3 6 8 2 6 3 7 8 3 7 8 7 3 5 1 6 6 0 2 1 2 3 7 8 5 3 4 6 9 5 1 2 4 9 6 2 4 3 1 7 3 1 7 6 9 8 4 5 0 6 8 2 1 7 2 7 2 7 3 2 4 5 6 8 6 5 3 1 8 6 0 1 7 9 9 8 8 3 5 0 2 3 3 3 2 7 0 5 4 6 7 1 3 5 1 1 0 4 4 1 0 5 4 0 4 4 8 4 9 4 7 3 9 2 7 2 9 9 7 6 7 6 7 0 1 8 4 2 3 8 5 3 5 9 5 2 5 4 8 7 0 5 0 1 7 9 3 9 1 2 5 8 8 2 1 2 2 5 6 5 5 1 1 1 0 6 5 6 2 3 3 2 1 5 4 8 5 9 9 6 2 4 4 2 8 7 4 1 2 0 8 8 3 9 1 4 8 6 2 0 1 5 5 2 0 9 3 7 0 2 3 2 7 0 7 7 7 1 8 0 4 7 0 7 8 3 3 6 1 5 9 2 2 4 5 5 5 8 2 7 2 6 2 1 8 9 9 5 0 7 7 6 6 9 4 5
i knew that !!!
but Don't know where my logic doesn't work????
Very likely, I saw more than 50 recent submissions (including mine) got (consecutively) SEs.Zerch wrote:is there a problem with this excersice? 929 - Number Maze ... I only get submition error... plz... help me