제출 #1238721

#제출 시각아이디문제언어결과실행 시간메모리
1238721santi3223Aliens (IOI16_aliens)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h> #include "aliens.h" using namespace std; #define ll long long #define vl vector<ll> #define all(aaa) aaa.begin(), aaa.end() #define ff(aa, bb, cc) for(ll aa = bb; aa < cc; aa++) #define vb vector<bool> #define ed "\n" #define pb push_back #define pll pair<ll, ll> ll minn; set<pll> points; set<vector<vb>> todos; ll K, M; ll q = 0; void brute(ll curk, vector<vb> visited, ll qq){ if(curk == K){ bool ok = true; for(auto &[a, b] : points){ if(visited[a][b] == 0){ ok = false; return; } } if(!ok){ return; } minn = min(minn, qq); /*if(x == minn){ ff(i, 0, M){ ff(j, 0, M){ cout << visited[i][j] << " "; } cout << ed; } cout << ed; }*/ return; } ll sz = todos.size(); todos.insert(visited); if(sz == todos.size()){ return; } if(qq > minn){ return; } q++; brute(curk+1, visited, qq); ff(i, 0, M){ ff(j, i, M){ vector<vb> nuevo = visited; //i---j //| | //|---x ll nw = qq; ll dist = j-i+1; ff(curi, i, i+dist){ ff(curj, i, i+dist){ if(nuevo[curi][curj] == 0){ nw++; } nuevo[curi][curj] = 1; } } if(nuevo != visited){ brute(curk+1, nuevo, nw); } } } } long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c){ bool ok = true; K = k; M = m; unordered_set<ll> dif; ff(i, 0, n){ points.insert({r[i], c[i]}); dif.insert(r[i]); if(r[i] != c[i]){ ok = false; } } if(ok){ return dif.size(); } vector<vb> visited(m, vb(m, 0)); //cout << m*m << ed; minn = m*m; brute(0, visited, 0); cout << q << ed; return minn; } /* int main() { int n, m, k; assert(3 == scanf("%d %d %d", &n, &m, &k)); std::vector<int> r(n), c(n); for (int i = 0; i < n; i++) { assert(2 == scanf("%d %d", &r[i], &c[i])); } long long ans = take_photos(n, m, k, r, c); printf("%lld\n", ans); return 0; } */

컴파일 시 표준 에러 (stderr) 메시지

aliens.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...