제출 #1124346

#제출 시각아이디문제언어결과실행 시간메모리
1124346oliverurdzikCave (IOI13_cave)C++20
0 / 100
6 ms576 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; using ll = long long; using vi = vector<int>; using vvi = vector<vector<int>>; using pii = pair<int, int>; using vll = vector<long long>; using vvll = vector<vector<long long>>; using vstr = vector<string>; using str = string; #define PB push_back #define ALL(x) (x).begin(), (x).end() #define FOR(i, s, f) for (int(i) = (s); i < (f); (i)++) #define ROF(i, s, f) for (int(i) = (s); i > (f); (i)--) #define loop(x) for (int i = 0; i < (x); i++) #define all(x) x.begin(), x.end() str to_bin(int a){ return bitset<13>(a).to_string(); } vector<int> permu(int a, int n){ vector<int> ans; FOR(i,0,n){ if(to_bin(i)[a] == 1) ans.PB(i); } return ans; } //void answer(int S[],int D[]); //int tryCombination(int S[]); void exploreCave(int n){ vector<int> paky(n,1); vector<int> doterajsie= {}; int res1[n]; FOR(i,0,n){ str tento = "0000000000000"; vi komb = doterajsie; FOR(j,0,13){ vector<int> komb(n, 0); for(auto k : permu(i, n)){ if(k >=i) komb[k] = 1; } FOR(i,0,n) res1[i] = komb[i]; int vyskusane = tryCombination(res1); if (vyskusane == -1 or vyskusane > i){ tento[j] = 1; } } doterajsie.PB(stoi(tento, nullptr, 2)); } int polohy[n]; FOR(i,0,n) polohy[i] = 0; FOR(i,0,n){ int vyskusane = tryCombination(polohy); if(vyskusane<i) polohy[doterajsie[i]] = 1; } int res2[n]; FOR(i,0,n) res2[i] = doterajsie[i]; answer(polohy,res2); }
#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...