# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
36256 |
2017-12-06T14:31:51 Z |
Flumen |
Price List (POI13_cen) |
C++11 |
|
233 ms |
14676 KB |
#include<bits/stdc++.h>
using namespace std;
vector<int>node[100100],node1[100100],tmp;
int ans[100100],mark[100100];
queue<pair<int,int> >Q;
void bfs1(int k,int a,int b){
Q.push(make_pair(k,0));
while(!Q.empty()){
mark[Q.front().first]=1;
ans[Q.front().first]=min(b,2*a)*(Q.front().second/2)+a*(Q.front().second%2);
for(int i=0;i<node[Q.front().first].size();i++){
if(mark[node[Q.front().first][i]]==1)continue;
mark[node[Q.front().first][i]]=1;
Q.push(make_pair(node[Q.front().first][i],Q.front().second+1));
}
Q.pop();
}
}
void bfs2(int k,int a,int b){
int x,y,z;
Q.push(make_pair(k,0));
while(!Q.empty()){
x=Q.front().first;
y=Q.front().second;
Q.pop();
mark[x]=2;
ans[x]=min(ans[x],min(y*b,y*2*a));
for(int i=0;i<node1[x].size();i++){
for(int j=0;j<node[node1[x][i]].size();j++){
z=lower_bound(node1[node[node1[x][i]][j]].begin(),node1[node[node1[x][i]][j]].end(),x)-node1[node[node1[x][i]][j]].begin();
if(mark[node[node1[x][i]][j]]==2)tmp.push_back(node[node1[x][i]][j]);
else if(z<node1[node[node1[x][i]][j]].size()&&node1[node[node1[x][i]][j]][z]==x)tmp.push_back(node[node1[x][i]][j]);
else{
mark[node[node1[x][i]][j]]=2;
Q.push(make_pair(node[node1[x][i]][j],y+1));
}
}
node[node1[x][i]].clear();
for(int j=0;j<tmp.size();j++){
node[node1[x][i]].push_back(tmp[j]);
}
tmp.clear();
}
}
}
int main(){
int n,m,k,a,b,i,x,y;
scanf("%d%d%d%d%d",&n,&m,&k,&a,&b);
for(i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
node[x].push_back(y);
node[y].push_back(x);
node1[x].push_back(y);
node1[y].push_back(x);
}
for(i=1;i<=n;i++){
sort(node[i].begin(),node[i].end());
sort(node1[i].begin(),node1[i].end());
}
bfs1(k,a,b);
bfs2(k,a,b);
for(i=1;i<=n;i++)printf("%d\n",ans[i]);
return 0;
}
Compilation message
cen.cpp: In function 'void bfs1(int, int, int)':
cen.cpp:11:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<node[Q.front().first].size();i++){
^
cen.cpp: In function 'void bfs2(int, int, int)':
cen.cpp:28:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<node1[x].size();i++){
^
cen.cpp:29:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0;j<node[node1[x][i]].size();j++){
^
cen.cpp:32:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
else if(z<node1[node[node1[x][i]][j]].size()&&node1[node[node1[x][i]][j]][z]==x)tmp.push_back(node[node1[x][i]][j]);
^
cen.cpp:39:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0;j<tmp.size();j++){
^
cen.cpp: In function 'int main()':
cen.cpp:48:39: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d%d%d",&n,&m,&k,&a,&b);
^
cen.cpp:51:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&x,&y);
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
7492 KB |
Output is correct |
2 |
Correct |
3 ms |
7492 KB |
Output is correct |
3 |
Correct |
3 ms |
7492 KB |
Output is correct |
4 |
Correct |
0 ms |
7492 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
7492 KB |
Output is correct |
2 |
Correct |
0 ms |
7492 KB |
Output is correct |
3 |
Correct |
0 ms |
7492 KB |
Output is correct |
4 |
Correct |
0 ms |
7492 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
7492 KB |
Output is correct |
2 |
Correct |
0 ms |
7492 KB |
Output is correct |
3 |
Correct |
0 ms |
7492 KB |
Output is correct |
4 |
Correct |
0 ms |
7492 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
8292 KB |
Output is correct |
2 |
Correct |
9 ms |
8292 KB |
Output is correct |
3 |
Correct |
19 ms |
8284 KB |
Output is correct |
4 |
Correct |
16 ms |
8284 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
43 ms |
10460 KB |
Output is correct |
2 |
Correct |
66 ms |
10460 KB |
Output is correct |
3 |
Correct |
59 ms |
9472 KB |
Output is correct |
4 |
Correct |
89 ms |
10000 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
106 ms |
12316 KB |
Output is correct |
2 |
Correct |
93 ms |
11656 KB |
Output is correct |
3 |
Correct |
173 ms |
12112 KB |
Output is correct |
4 |
Correct |
219 ms |
11848 KB |
Output is correct |
5 |
Correct |
136 ms |
12936 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
129 ms |
13344 KB |
Output is correct |
2 |
Correct |
109 ms |
11716 KB |
Output is correct |
3 |
Correct |
186 ms |
12244 KB |
Output is correct |
4 |
Correct |
169 ms |
11848 KB |
Output is correct |
5 |
Correct |
139 ms |
13720 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
169 ms |
14132 KB |
Output is correct |
2 |
Correct |
159 ms |
13344 KB |
Output is correct |
3 |
Correct |
183 ms |
12640 KB |
Output is correct |
4 |
Correct |
169 ms |
11848 KB |
Output is correct |
5 |
Correct |
186 ms |
14228 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
176 ms |
13588 KB |
Output is correct |
2 |
Correct |
169 ms |
13588 KB |
Output is correct |
3 |
Correct |
233 ms |
12904 KB |
Output is correct |
4 |
Correct |
193 ms |
11848 KB |
Output is correct |
5 |
Correct |
159 ms |
14676 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
173 ms |
13696 KB |
Output is correct |
2 |
Correct |
169 ms |
13696 KB |
Output is correct |
3 |
Correct |
233 ms |
13828 KB |
Output is correct |
4 |
Correct |
193 ms |
11848 KB |
Output is correct |
5 |
Correct |
209 ms |
14620 KB |
Output is correct |