제출 #1260104

#제출 시각아이디문제언어결과실행 시간메모리
1260104terracottaliteIsland Hopping (JOI24_island)C++20
100 / 100
3 ms404 KiB
#include <stdio.h> //#define TEST #ifndef TEST #include "island.h" #else int query(int x, int k) { printf("? %d %d\n", x, k); fflush(stdout); int ret; scanf("%d", &ret); return ret; } void answer(int i, int j) { printf("! %d %d\n", i, j); fflush(stdout); } #endif char vi[400] = { 0 }; char ad[400][400] = { 0 }; int c[400]; int d[400]; void solve(int n, int l) { int root = 1; d[0] = root; for (int i=1;i<n;i++) { d[i] = query(root, i); } for (int i=0;i<n;i++) { c[d[i]] = i; } vi[0] = 1; for (int i=1;i<n;i++) { int y = d[i]; if (vi[y]) continue; int x = -1; int v = 1; do { x = query(y, v++); vi[x] = 1; ad[y][x] = 1; ad[x][y] = 1; } while (c[x] > c[y]); } for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { if (ad[i][j] && i < j) { answer(i, j); } } } } #ifdef TEST int main() { int n, l; scanf("%d %d", &n, &l); solve(n, l); } #endif
#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...