Submission #492338

#TimeUsernameProblemLanguageResultExecution timeMemory
492338PetyFloppy (RMI20_floppy)C++14
100 / 100
89 ms14116 KiB
#include <bits/stdc++.h> #include "floppy.h" using namespace std; int dp[17][40002]; void read_array(int subtask_id, const vector<int> &v) { string bits; stack<int>st; st.push(-1); for (int i = 0; i < v.size(); i++) { while (st.top() != -1 && v[st.top()] < v[i]) { bits += '0'; st.pop(); } st.push(i); bits += '1'; } save_to_floppy(bits); } vector<int> solve_queries(int subtask_id, int N, const string &bits, const vector<int>&a, const vector<int>&b) { stack<int>st; st.push(-1); int ind = 0; int ind2 = 0; while (ind < N) { while (bits[ind2] == '0') { ind2++; st.pop(); } dp[0][ind + 1] = st.top() + 1; st.push(ind); ind2++; ind++; } for (int i = 1; (1 << i) <= N; i++) for (int j = 1; j <= N; j++) dp[i][j] = dp[i - 1][dp[i - 1][j]]; vector<int>ans; for (int i = 0; i < a.size(); i++) { int poz = b[i] + 1; for (int pas = 15; pas >= 0; pas--) { if ((1 << pas) > N) continue; if (dp[pas][poz] >= a[i] + 1) { poz = dp[pas][poz]; } } ans.push_back(poz - 1); } return ans; }

Compilation message (stderr)

floppy.cpp: In function 'void read_array(int, const std::vector<int>&)':
floppy.cpp:14:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |   for (int i = 0; i < v.size(); i++) {
      |                   ~~^~~~~~~~~~
floppy.cpp: In function 'std::vector<int> solve_queries(int, int, const string&, const std::vector<int>&, const std::vector<int>&)':
floppy.cpp:44:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |   for (int i = 0; i < a.size(); i++) {
      |                   ~~^~~~~~~~~~
stub.cpp: In function 'void run2()':
stub.cpp:101:30: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  101 |     if (query_answers.size() != M) {
      |         ~~~~~~~~~~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...