답안 #58943

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
58943 2018-07-19T21:22:30 Z Benq 컴퓨터 네트워크 (BOI14_network) C++14
75 / 100
187 ms 4588 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 (cur == a || x == b || 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]);
             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 116 ms 4344 KB Output is correct
2 Correct 137 ms 4452 KB Output is correct
3 Correct 120 ms 4504 KB Output is correct
4 Correct 121 ms 4504 KB Output is correct
5 Correct 159 ms 4504 KB Output is correct
6 Correct 119 ms 4504 KB Output is correct
7 Correct 2 ms 4504 KB Output is correct
8 Correct 2 ms 4504 KB Output is correct
9 Correct 2 ms 4504 KB Output is correct
10 Correct 3 ms 4504 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 135 ms 4504 KB Output is correct
2 Correct 31 ms 4504 KB Output is correct
3 Correct 163 ms 4552 KB Output is correct
4 Correct 133 ms 4552 KB Output is correct
5 Correct 153 ms 4552 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 120 ms 4564 KB Output is correct
2 Correct 26 ms 4564 KB Output is correct
3 Correct 130 ms 4564 KB Output is correct
4 Correct 103 ms 4588 KB Output is correct
5 Correct 187 ms 4588 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 111 ms 4588 KB Too many calls to ping
2 Halted 0 ms 0 KB -