Submission #58941

# Submission time Handle Problem Language Result Execution time Memory
58941 2018-07-19T21:20:30 Z Benq Computer Network (BOI14_network) C++14
75 / 100
151 ms 18676 KB
#include "network.h"

#include <bits/stdc++.h>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>

using namespace std;
using namespace __gnu_pbds;
 
typedef long long ll;
typedef long double ld;
typedef complex<ld> cd;

typedef pair<int, int> pi;
typedef pair<ll,ll> pl;
typedef pair<ld,ld> pd;

typedef vector<int> vi;
typedef vector<ld> vd;
typedef vector<ll> vl;
typedef vector<pi> vpi;
typedef vector<pl> vpl;
typedef vector<cd> vcd;

template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>;

#define FOR(i, a, b) for (int i=a; i<(b); i++)
#define F0R(i, a) for (int i=0; i<(a); i++)
#define FORd(i,a,b) for (int i = (b)-1; i >= a; i--)
#define F0Rd(i,a) for (int i = (a)-1; i >= 0; i--)

#define sz(x) (int)(x).size()
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define lb lower_bound
#define ub upper_bound
#define all(x) x.begin(), x.end()

const int MOD = 1000000007;
const ll INF = 1e18;
const int MX = 100001;

int dist(int a, int b) { 
	if (a == b) return 0; 
	return ping(a,b)+1; 
}

vi v[1001];

void findRoute (int N, int a, int b) {
	int tot;
	FOR(i,1,N+1) if (i != b) v[dist(a,i)].pb(i);
	tot = dist(a,b);
	v[tot].pb(b);

	int cur = a, d = 0;
	while (cur != b) {
		d ++;
		bool ok = 0;
		while (sz(v[d]) > 1) {
			int x = v[d].back(); v[d].pop_back();
			if (dist(x,b) != tot-d) continue;
			if (dist(cur,x) == 1) {
				ok = 1; cur = x;
				break;
			}
		}
		if (!ok) cur = v[d].back();
		travelTo(cur);
	}
}

Compilation message

grader.c: In function 'int main()':
grader.c:48:11: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf ("%d%d%d%d", &N, &a, &b, &M);
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
grader.c:51:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d", &distance[u][v]);
             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 146 ms 4344 KB Output is correct
2 Correct 119 ms 7652 KB Output is correct
3 Correct 121 ms 10580 KB Output is correct
4 Correct 107 ms 13412 KB Output is correct
5 Correct 105 ms 15960 KB Output is correct
6 Correct 105 ms 18360 KB Output is correct
7 Correct 2 ms 18360 KB Output is correct
8 Correct 2 ms 18360 KB Output is correct
9 Correct 2 ms 18360 KB Output is correct
10 Correct 2 ms 18360 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 108 ms 18460 KB Output is correct
2 Correct 27 ms 18460 KB Output is correct
3 Correct 119 ms 18656 KB Output is correct
4 Correct 96 ms 18656 KB Output is correct
5 Correct 120 ms 18676 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 108 ms 18676 KB Output is correct
2 Correct 29 ms 18676 KB Output is correct
3 Correct 120 ms 18676 KB Output is correct
4 Correct 105 ms 18676 KB Output is correct
5 Correct 145 ms 18676 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 151 ms 18676 KB Too many calls to ping
2 Halted 0 ms 0 KB -