Submission #1257908

#TimeUsernameProblemLanguageResultExecution timeMemory
1257908terracottaliteIsland Hopping (JOI24_island)C++20
2 / 100
2 ms904 KiB
#include <stdio.h> #include <vector> using namespace std; #ifndef TEST #include "island.h" #endif #ifdef TEST int query(int x, int k) { printf("? %d %d\n", x, k); fflush(stdout); int ret; scanf("%d", &ret); return ret; } void answer(int x, int y) { printf("! %d %d\n", x, y); fflush(stdout); } #endif void solve(int n, int l) { /* set<int> unvi; for (int i=1;i<=n;i++) { unvi.insert(i); } */ int a[400][2]; for (int i=1;i<=n;i++) { a[i][0] = query(i, 1); a[i][1] = query(i, 2); } int mat[400][400]; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) mat[i][j] = 0; for (int i=1;i<=n;i++) { mat[i][a[i][0]] = 1; mat[a[i][0]][i] = 1; if (mat[i][1] != mat[a[i][0]][1] && mat[i][1] != mat[a[i][0]][0]) { mat[i][a[i][1]] = 1; mat[a[i][1]][i] = 1; } } for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { if (mat[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...