Submission #2297504


Source Code Expand

#include<cstdio>
#include<cstring>
#include<queue>
#include<cstdlib>
#include<iostream>
#include<cmath>
#define MAXM 30010
#define MAXN 510
#define INF 0x3f3f3f3f
using namespace std;
struct int_Edge
{
	int u,v;
	int w;
	double cost;
	int next;
}Edge[MAXM];
int dis[MAXN],head[MAXN],pre[MAXN],cnt_Edge=1,Maxf_S,Maxf_T;
inline void Insert_Edge(int u,int v,int w,double cost)
{
	++cnt_Edge;Edge[cnt_Edge].u=u;Edge[cnt_Edge].v=v;Edge[cnt_Edge].w=w;Edge[cnt_Edge].cost= cost;Edge[cnt_Edge].next=head[u];head[u]=cnt_Edge;
	++cnt_Edge;Edge[cnt_Edge].u=v;Edge[cnt_Edge].v=u;Edge[cnt_Edge].w=0;Edge[cnt_Edge].cost=-cost;Edge[cnt_Edge].next=head[v];head[v]=cnt_Edge;
}
bool vis[MAXN];
double h[MAXN];
inline bool MCMFSPFA()
{
	static int v;
	for(int i=1;i<MAXN;i++)
		h[i]=1e9+7;
	memset(pre,-1,sizeof(pre));
	h[Maxf_S]=0;
	queue<int>q;
	q.push(Maxf_S);
	while(!q.empty())
	{
		int u=q.front();q.pop();
		vis[u]=false;
		for(register int i=head[u];i;i=Edge[i].next)
		{
			v=Edge[i].v;
			if((h[v]>h[u]+Edge[i].cost)&&Edge[i].w>0)
			{
				h[v]=h[u]+Edge[i].cost;
				pre[v]=i;
				if(!vis[v])
				{
					vis[v]=true;
					q.push(v);
				}
			}
		}
	}
//	for(int i=1;i<=T;i++)
//		cout<<h[Maxf_S]<<" "<<h[Maxf_T]<<endl;
//		cout<<pre[Maxf_T]<<endl;
	return pre[Maxf_T]!=-1;
}
int MAX_FLOW=0;
double MIN_COST=0.0000000;
inline void MCMF()
{
	while(MCMFSPFA())
	{
		int delt=0x3f3f3f3f;
		double coss=0;
		for(register int i=Maxf_T;i!=Maxf_S;i=Edge[pre[i]].u)
			delt=min(delt,Edge[pre[i]].w);
		for(register int i=Maxf_T;i!=Maxf_S;i=Edge[pre[i]].u)
		{
			Edge[pre[i]].w-=delt;
			Edge[pre[i]^1].w+=delt;
			coss+=Edge[pre[i]].cost;
		}
		
		MAX_FLOW+=delt;
		MIN_COST+=(coss*delt);
	}
}
double x[200],y[200];
int main()
{
	int n;
	scanf("%d",&n);
	int SS=n*2+1,TT=n*2+2,oo=n*2+3,TTT=n*3+4;
	for(int i=1;i<=n;i++)
		scanf("%lf%lf",&x[i],&y[i]);
	for(int i=1;i<=n;i++)
	{
		if(x[i]<0.0000000)
		{
			Insert_Edge(SS,i,1,0.0000000);
			Insert_Edge(oo,i,1,-x[i]);
		}
		else
		{
			Insert_Edge(i+n,TT,1,0.0000000);
			Insert_Edge(oo,i,1,x[i]);
		}
		Insert_Edge(i,i+n,1,0.0000000);
	}
	Insert_Edge(SS,oo,0x3f3f3f3f,0.0000000);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(i==j)continue;
			if(x[i]<0&&x[j]>0)
				Insert_Edge(i+n,j,1,sqrt((x[i]+x[j])*(x[i]+x[j])+(y[i]-y[j])*(y[i]-y[j])));
		}
	}
	Insert_Edge(TT,TTT,n,0.0000000);
	Maxf_S=SS;
	Maxf_T=TTT;
	
	MCMF();
	printf("%.7f",MIN_COST);
	return 0;
}

Submission Info

Submission Time
Task B - 玉座の間
User luogu_bot2
Language C++ (GCC 5.4.1)
Score 0
Code Size 2523 Byte
Status WA
Exec Time 6 ms
Memory 384 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:84:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
./Main.cpp:87:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lf%lf",&x[i],&y[i]);
                              ^

Judge Result

Set Name Subtask1 Subtask2 Subtask3 Subtask4
Score / Max Score 0 / 50 0 / 50 0 / 50 0 / 50
Status
AC × 13
WA × 12
AC × 19
WA × 31
AC × 23
WA × 52
AC × 27
WA × 73
Set Name Test Cases
Subtask1 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt
Subtask2 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt, 21_rand00.txt, 21_rand01.txt, 21_rand02.txt, 21_rand03.txt, 21_rand04.txt, 21_rand05.txt, 21_rand06.txt, 21_rand07.txt, 21_rand08.txt, 21_rand09.txt, 21_rand10.txt, 21_rand11.txt, 21_rand12.txt, 21_rand13.txt, 21_rand14.txt, 21_rand15.txt, 21_rand16.txt, 21_rand17.txt, 21_rand18.txt, 21_rand19.txt, 21_rand20.txt, 21_rand21.txt, 21_rand22.txt, 21_rand23.txt, 21_rand24.txt
Subtask3 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt, 21_rand00.txt, 21_rand01.txt, 21_rand02.txt, 21_rand03.txt, 21_rand04.txt, 21_rand05.txt, 21_rand06.txt, 21_rand07.txt, 21_rand08.txt, 21_rand09.txt, 21_rand10.txt, 21_rand11.txt, 21_rand12.txt, 21_rand13.txt, 21_rand14.txt, 21_rand15.txt, 21_rand16.txt, 21_rand17.txt, 21_rand18.txt, 21_rand19.txt, 21_rand20.txt, 21_rand21.txt, 21_rand22.txt, 21_rand23.txt, 21_rand24.txt, 31_rand00.txt, 31_rand01.txt, 31_rand02.txt, 31_rand03.txt, 31_rand04.txt, 31_rand05.txt, 31_rand06.txt, 31_rand07.txt, 31_rand08.txt, 31_rand09.txt, 31_rand10.txt, 31_rand11.txt, 31_rand12.txt, 31_rand13.txt, 31_rand14.txt, 31_rand15.txt, 31_rand16.txt, 31_rand17.txt, 31_rand18.txt, 31_rand19.txt, 31_rand20.txt, 31_rand21.txt, 31_rand22.txt, 31_rand23.txt, 31_rand24.txt
Subtask4 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt, 21_rand00.txt, 21_rand01.txt, 21_rand02.txt, 21_rand03.txt, 21_rand04.txt, 21_rand05.txt, 21_rand06.txt, 21_rand07.txt, 21_rand08.txt, 21_rand09.txt, 21_rand10.txt, 21_rand11.txt, 21_rand12.txt, 21_rand13.txt, 21_rand14.txt, 21_rand15.txt, 21_rand16.txt, 21_rand17.txt, 21_rand18.txt, 21_rand19.txt, 21_rand20.txt, 21_rand21.txt, 21_rand22.txt, 21_rand23.txt, 21_rand24.txt, 31_rand00.txt, 31_rand01.txt, 31_rand02.txt, 31_rand03.txt, 31_rand04.txt, 31_rand05.txt, 31_rand06.txt, 31_rand07.txt, 31_rand08.txt, 31_rand09.txt, 31_rand10.txt, 31_rand11.txt, 31_rand12.txt, 31_rand13.txt, 31_rand14.txt, 31_rand15.txt, 31_rand16.txt, 31_rand17.txt, 31_rand18.txt, 31_rand19.txt, 31_rand20.txt, 31_rand21.txt, 31_rand22.txt, 31_rand23.txt, 31_rand24.txt, 41_rand00.txt, 41_rand01.txt, 41_rand02.txt, 41_rand03.txt, 41_rand04.txt, 41_rand05.txt, 41_rand06.txt, 41_rand07.txt, 41_rand08.txt, 41_rand09.txt, 41_rand10.txt, 41_rand11.txt, 41_rand12.txt, 41_rand13.txt, 41_rand14.txt, 41_rand15.txt, 41_rand16.txt, 41_rand17.txt, 41_rand18.txt, 41_rand19.txt, 41_rand20.txt, 41_rand21.txt, 41_rand22.txt, 41_rand23.txt, 41_rand24.txt
Case Name Status Exec Time Memory
11_rand00.txt WA 1 ms 256 KB
11_rand01.txt AC 1 ms 256 KB
11_rand02.txt AC 1 ms 256 KB
11_rand03.txt WA 1 ms 256 KB
11_rand04.txt AC 1 ms 256 KB
11_rand05.txt WA 1 ms 256 KB
11_rand06.txt AC 1 ms 256 KB
11_rand07.txt AC 3 ms 384 KB
11_rand08.txt WA 1 ms 256 KB
11_rand09.txt AC 1 ms 256 KB
11_rand10.txt AC 1 ms 256 KB
11_rand11.txt AC 1 ms 256 KB
11_rand12.txt WA 1 ms 256 KB
11_rand13.txt WA 1 ms 256 KB
11_rand14.txt WA 1 ms 256 KB
11_rand15.txt AC 1 ms 256 KB
11_rand16.txt WA 1 ms 256 KB
11_rand17.txt WA 1 ms 256 KB
11_rand18.txt WA 1 ms 256 KB
11_rand19.txt WA 1 ms 256 KB
11_rand20.txt WA 1 ms 256 KB
11_rand21.txt AC 1 ms 256 KB
11_rand22.txt AC 1 ms 256 KB
11_rand23.txt AC 1 ms 256 KB
11_rand24.txt AC 1 ms 256 KB
21_rand00.txt AC 1 ms 256 KB
21_rand01.txt WA 1 ms 256 KB
21_rand02.txt WA 1 ms 256 KB
21_rand03.txt WA 1 ms 256 KB
21_rand04.txt WA 1 ms 256 KB
21_rand05.txt WA 1 ms 256 KB
21_rand06.txt WA 1 ms 256 KB
21_rand07.txt WA 1 ms 256 KB
21_rand08.txt WA 1 ms 256 KB
21_rand09.txt AC 1 ms 256 KB
21_rand10.txt WA 1 ms 256 KB
21_rand11.txt WA 1 ms 256 KB
21_rand12.txt WA 1 ms 256 KB
21_rand13.txt WA 1 ms 256 KB
21_rand14.txt WA 1 ms 256 KB
21_rand15.txt WA 1 ms 256 KB
21_rand16.txt WA 1 ms 256 KB
21_rand17.txt WA 1 ms 256 KB
21_rand18.txt WA 1 ms 256 KB
21_rand19.txt AC 1 ms 256 KB
21_rand20.txt WA 1 ms 256 KB
21_rand21.txt WA 1 ms 256 KB
21_rand22.txt AC 1 ms 256 KB
21_rand23.txt AC 1 ms 256 KB
21_rand24.txt AC 1 ms 256 KB
31_rand00.txt AC 1 ms 256 KB
31_rand01.txt WA 1 ms 256 KB
31_rand02.txt AC 1 ms 256 KB
31_rand03.txt WA 1 ms 256 KB
31_rand04.txt WA 1 ms 256 KB
31_rand05.txt WA 1 ms 256 KB
31_rand06.txt WA 1 ms 256 KB
31_rand07.txt WA 1 ms 256 KB
31_rand08.txt WA 1 ms 256 KB
31_rand09.txt WA 1 ms 256 KB
31_rand10.txt WA 1 ms 256 KB
31_rand11.txt WA 1 ms 256 KB
31_rand12.txt WA 1 ms 256 KB
31_rand13.txt WA 1 ms 256 KB
31_rand14.txt AC 1 ms 256 KB
31_rand15.txt WA 1 ms 256 KB
31_rand16.txt AC 1 ms 256 KB
31_rand17.txt WA 1 ms 256 KB
31_rand18.txt WA 1 ms 256 KB
31_rand19.txt WA 1 ms 256 KB
31_rand20.txt WA 1 ms 256 KB
31_rand21.txt WA 1 ms 256 KB
31_rand22.txt WA 1 ms 256 KB
31_rand23.txt WA 1 ms 256 KB
31_rand24.txt WA 1 ms 256 KB
41_rand00.txt AC 1 ms 256 KB
41_rand01.txt AC 1 ms 256 KB
41_rand02.txt WA 2 ms 256 KB
41_rand03.txt WA 2 ms 384 KB
41_rand04.txt WA 2 ms 384 KB
41_rand05.txt WA 1 ms 256 KB
41_rand06.txt WA 1 ms 256 KB
41_rand07.txt WA 3 ms 384 KB
41_rand08.txt WA 1 ms 256 KB
41_rand09.txt WA 1 ms 256 KB
41_rand10.txt AC 1 ms 256 KB
41_rand11.txt WA 2 ms 384 KB
41_rand12.txt WA 3 ms 384 KB
41_rand13.txt WA 1 ms 256 KB
41_rand14.txt WA 2 ms 256 KB
41_rand15.txt WA 1 ms 256 KB
41_rand16.txt WA 1 ms 256 KB
41_rand17.txt WA 2 ms 384 KB
41_rand18.txt WA 6 ms 384 KB
41_rand19.txt WA 5 ms 384 KB
41_rand20.txt WA 2 ms 256 KB
41_rand21.txt WA 1 ms 256 KB
41_rand22.txt AC 2 ms 256 KB
41_rand23.txt WA 3 ms 384 KB
41_rand24.txt WA 2 ms 384 KB