QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#785055#3704. Travelviq2347WA 2ms7636kbC++17883b2024-11-26 16:44:042024-11-26 16:44:05

Judging History

This is the latest submission verdict.

  • [2024-11-26 16:44:05]
  • Judged
  • Verdict: WA
  • Time: 2ms
  • Memory: 7636kb
  • [2024-11-26 16:44:04]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
enum{_n=100007};
u32string E[_n];
int PR[_n],SU[_n];
void del(int x)
{SU[PR[x]]=SU[x],PR[SU[x]]=PR[x];}
bitset<_n> B;
int d[_n];
int q[_n],f,e;
int main(){
	cin.tie(0)->sync_with_stdio(0);
	int n,m,a,b;
	for(;cin>>n>>m>>a>>b;){
		for(int i=1;i<=n;++i) E[i]={};
		bool op=0;
		for(int i=1,x,y;i<=m;++i)
			cin>>x>>y,E[x]+=y,E[y]+=x,op|=
			x==1&&y==n||x==n&&y==1;
		int64_t ans=op?a:b;
	  if(op){
		iota(PR+1,PR+n+1,0);
		iota(SU,SU+n,1);
		PR[0]=SU[n]=0;
		del(1);
		for(q[e=1,f=0]=1;f!=e;++f){
			int u=q[f];
			for(int v:E[u]) B[v]=1;
			for(int v=SU[0];v;v=SU[v])
				if(!B[v]) d[v]=d[u]+1,del(v),q[e++]=v;
			for(int v:E[u]) B[v]=0;
		}
		ans=min(ans,int64_t(b)*d[n]);
	  }else{
		for(q[e=1,f=0]=1;f!=e;++f)
			for(int u=q[f];int v:E[u]) 
			if(!d[v]) d[v]=d[u]+1,q[e++]=v;
		ans=min(ans,int64_t(a)*d[n]);
	  }
		cout<<ans<<'\n';
	}
}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 7544kb

input:

3 2 1 3
1 2
2 3

output:

2

result:

ok 1 number(s): "2"

Test #2:

score: 0
Accepted
time: 1ms
memory: 7380kb

input:

3 2 2 3
1 2
2 3

output:

3

result:

ok 1 number(s): "3"

Test #3:

score: -100
Wrong Answer
time: 0ms
memory: 7636kb

input:

2 0 1 1

output:

0

result:

wrong answer 1st numbers differ - expected: '1', found: '0'