Submission #417495

#TimeUsernameProblemLanguageResultExecution timeMemory
417495iulia2100Minerals (JOI19_minerals)C++14
40 / 100
32 ms3652 KiB
#include <iostream> #include <vector> #include "minerals.h" using namespace std; //ifstream cin ("idk.in"); //ofstream cout ("idk.out"); const int N = 96005; int last_ans; int q[N]; bool in_set[N]; vector <int> st, dr; void solve(vector <int> v) { if (v.size() == 2) { Answer(v[0], v[1]); return; } // cout << v.size() << '\n'; vector <int> aux_st, aux_dr; int nr = v.size() / 4, x = 0; for (auto it : v) { if (x == nr && in_set[it]) { aux_dr.push_back(it); } else if (in_set[it]) { x = Query(it); q[it] ^= 1; aux_st.push_back(it); } } for (auto it : v) { if (in_set[it]) continue; if (aux_st.size() == nr + nr) { aux_dr.push_back(it); continue; } if (aux_dr.size() == v.size() - nr - nr) { aux_st.push_back(it); continue; } x = Query(it); q[it] ^= 1; if (x > nr) { x = Query(it); q[it] ^= 1; aux_dr.push_back(it); } else aux_st.push_back(it); } for (auto it : aux_st) { if (q[it]) { Query(it); q[it] ^= 1; } } solve(aux_st); solve(aux_dr); } void find_index(int n) { int last = 0; for (int i = 1; i <= n + n; ++i) { int x = Query(i); last_ans = x; if (x == last) { last_ans = Query(i); continue; } in_set[i] = true; last = x; } for (int i = 1; i <= n + n; ++i) { if (!in_set[i]) { dr.push_back(i); } else { st.push_back(i); Query(i); } } } void Solve(int n) { find_index(n); vector <int> aux(0); for (int i = 1; i <= n + n; ++i) aux.push_back(i); solve(aux); }

Compilation message (stderr)

minerals.cpp: In function 'void solve(std::vector<int>)':
minerals.cpp:38:27: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |         if (aux_st.size() == nr + nr)   {
      |             ~~~~~~~~~~~~~~^~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...