# |
제출 시각 |
아이디 |
문제 |
언어 |
결과 |
실행 시간 |
메모리 |
56640 |
2018-07-12T04:32:48 Z |
Ultimate Hyunsoo Kim(#2111) |
항공 노선도 (JOI18_airline) |
C++11 |
|
507 ms |
11176 KB |
#include "Alicelib.h"
#include<bits/stdc++.h>
using namespace std;
int cnt;
bool chk[1005];
void Alice (int N, int M, int A[], int B[]) {
for(int i=0;i<M;i++) {
if(max(A[i], B[i]) == min(A[i], B[i]) + 1) {
chk[min(A[i], B[i])] = 1;
cnt++;
}
}
InitG(N+1, M+(N-1-cnt)*2+1);
for(int i=0;i<M;i++) {
MakeG(i, max(A[i], B[i]), min(A[i], B[i]));
}
for(int i=0,j=0;i<N-1;i++) {
if(chk[i]) continue;
MakeG(M+2*j, i+1, i);
MakeG(M+2*j+1, N+1, i);
j++;
}
MakeG(M+(N-1-cnt)*2, N+1, N);
}
#include "Boblib.h"
#include<bits/stdc++.h>
using namespace std;
int x[1005], y[1005], idg[1005], cc, cnt;
bool chk[1005];
vector<int> adj[1005];
queue<int> q;
void Bob (int V, int U, int C[], int D[]) {
cc = V;
for(int i=0;i<U;i++) {
adj[C[i]].push_back(D[i]);
idg[D[i]]++;
}
for(int i=0;i<V;i++) {
if(idg[i] == 0) q.push(i);
}
while(!q.empty()) {
int C = q.front();
q.pop();
x[C] = --cc;
y[cc] = C;
for(auto &T : adj[C]) {
if(--idg[T] == 0) q.push(T);
}
}
for(auto &T : adj[y[V-1]]) {
if(x[T] != V-2) {
chk[T] = true;
cnt++;
}
}
InitMap(V-1, U-2*cnt-1);
for(int i=0;i<U;i++) {
if(x[C[i]] == V-1) continue;
if(!(x[C[i]] == x[D[i]]+1 && chk[D[i]])) {
MakeMap(x[C[i]], x[D[i]]);
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
5 ms |
3372 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
5 ms |
3372 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
507 ms |
11176 KB |
Wrong Answer [5] |
2 |
Halted |
0 ms |
0 KB |
- |