Submission #114365

#TimeUsernameProblemLanguageResultExecution timeMemory
114365faustaadpShortcut (IOI16_shortcut)C++17
0 / 100
2029 ms1152 KiB
#include "shortcut.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll n,i,jar[550],tam[550],has,j,d[550][550],C,b[550];
vector<ll> v[550],w[550];
ll cek(ll aa,ll bb)
{
	ll ii,jj,kk,ma=0;
	v[aa].pb(bb);
	w[aa].pb(C);
	v[bb].pb(aa);
	w[bb].pb(C);
	for(ii=0;ii<n*2;ii++)
		for(jj=0;jj<n*2;jj++)
			if(ii!=jj)
				d[ii][jj]=1e18;
	for(ii=0;ii<n*2;ii++)
		for(jj=0;jj<v[ii].size();jj++)
			d[ii][v[ii][jj]]=min(d[ii][v[ii][jj]],w[ii][jj]);
	for(kk=0;kk<n*2;kk++)
		for(ii=0;ii<n*2;ii++)
			for(jj=0;jj<n*2;jj++)
				d[ii][jj]=min(d[ii][jj],d[ii][kk]+d[kk][jj]);
	for(ii=0;ii<n*2;ii++)
		for(jj=0;jj<n*2;jj++)
			ma=max(ma,d[ii][jj]);
	v[aa].pop_back();
	w[aa].pop_back();
	v[bb].pop_back();
	w[bb].pop_back();
	return ma;
	//cout<<aa<<" "<<bb<<" "<<ma<<" "<<cln<<"\n";
	/*
	ma=0;
	for(ii=0;ii<(n*2);ii++)
		d[ii]=1e18;
	d[cln]=0;
	pq.push(mp(0,cln));
	cln=0;
	while(!pq.empty())
	{
		ll u=pq.top().se;
		ll dis=-pq.top().fi;
		pq.pop();
		if(d[u]!=dis)
			continue;
		ma=max(ma,d[u]);
		if(ma==d[u])
			cln=u;
		ll ii;
		for(ii=0;ii<v[u].size();ii++)
		{
			if(d[v[u][ii]]>d[u]+w[u][ii])
			{
				d[v[u][ii]]=d[u]+w[u][ii];
				pq.push(mp(-d[v[u][ii]],v[u][ii]));
			}
		}
	}
	//cout<<aa<<" "<<bb<<" "<<ma<<"\n";
	//cout<<ma<<"\n";
	return ma;
	*/
}
long long find_shortcut(int N, std::vector<int> l, std::vector<int> d, int c)
{
	n=N;
	if(n>100)
	{
		n=n/0;
		assert(1);
	}
	C=c;
	for(i=0;i<(n-1);i++)
		jar[i]=l[i];
	for(i=0;i<n;i++)
		tam[i]=d[i];
	for(i=0;i<(n-1);i++)
	{
		v[i].pb(i+1);
		w[i].pb(jar[i]);
		v[i+1].pb(i);
		w[i+1].pb(jar[i]);
	}
	for(i=0;i<n;i++)
	{
		v[i].pb(i+n);
		w[i].pb(tam[i]);
		v[i+n].pb(i);
		w[i+n].pb(tam[i]);
	}
	has=1e18;
	for(i=0;i<n;i++)
		for(j=i+1;j<n;j++)
			has=min(has,cek(i,j));
    return has;
}

Compilation message (stderr)

shortcut.cpp: In function 'll cek(ll, ll)':
shortcut.cpp:23:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(jj=0;jj<v[ii].size();jj++)
            ~~^~~~~~~~~~~~~
shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:75:6: warning: division by zero [-Wdiv-by-zero]
   n=n/0;
     ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...