Submission #1195998

#TimeUsernameProblemLanguageResultExecution timeMemory
1195998badge881Light Bulbs (EGOI24_lightbulbs)C++20
22 / 100
830 ms460 KiB
#include <bits/stdc++.h> using namespace std; const int MAX_N = 110; int n, gr[MAX_N][MAX_N]; int ask(vector<pair<int, int>> x) { for (auto [i, j] : x) gr[i][j] = 1; printf("?\n"); for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) printf("%d", gr[j][k]); printf("\n"); } fflush(stdout); for (auto [i, j] : x) gr[i][j] = 0; int z; scanf("%d", &z); return z; } void ans(vector<pair<int, int>> x) { for (auto [i, j] : x) gr[i][j] = 1; printf("!\n"); for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) printf("%d", gr[j][k]); printf("\n"); } fflush(stdout); } void checkv(vector<pair<int, int>> d) { set<int> s; vector<pair<int, int>> x; for (auto [i, j] : d) if (s.find(j) == s.end()) { x.push_back({i, j}); s.insert(j); } int z = ask(x); if (z == n * n) ans(x), exit(0); } void checkh(vector<pair<int, int>> d) { set<int> s; vector<pair<int, int>> x; for (auto [i, j] : d) { if (s.find(i) == s.end()) { x.push_back({i, j}); s.insert(i); } } int z = ask(x); if (z == n * n) { ans(x); exit(0); } } signed main() { scanf("%d", &n); vector<pair<int, int>> h, v; v = {{0, 0}}; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == 0 && j == 0) continue; int z = ask({{0, 0}, {i, j}}); if (z == (2 * n - 1)) h.push_back({i, j}); else v.push_back({i, j}); } } checkh(h); checkh(v); checkv(v); checkv(h); }

Compilation message (stderr)

Main.cpp: In function 'int ask(std::vector<std::pair<int, int> >)':
Main.cpp:20:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |     scanf("%d", &z);
      |     ~~~~~^~~~~~~~~~
Main.cpp: In function 'int main()':
Main.cpp:72:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   72 |     scanf("%d", &n);
      |     ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...