Submission #64792

#TimeUsernameProblemLanguageResultExecution timeMemory
64792GoodZalmoxis (BOI18_zalmoxis)C++17
100 / 100
388 ms32756 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #define ff first #define ss second #define Maxn 1000003 #define ll long long #define pb push_back #define Inf 1000000009 #define ppb() pop_back() #define pii pair <int , int> #define mid(x, y) (x + y) / 2 #define all(x) x.begin(),x.end() #define llInf 1000000000000000009 #define tr(i, c) for(__typeof(c).begin() i = (c).begin() ; i != (c).end() ; i++) using namespace std; using namespace __gnu_pbds; typedef tree <int, null_type, less <int>, rb_tree_tag, tree_order_statistics_node_update> order; int n, k; ll cnt[33]; int A[Maxn]; deque <int> dq; vector <int> E[Maxn]; int main () { //freopen ("file.in", "r", stdin); //freopen ("file.out", "w", stdout); //srand ((unsigned) time ( NULL )); //int randomNumber = rand() % 10 + 1; scanf ("%d%d", &n, &k); for (int i = 1; i <= n; i++) scanf ("%d", A + i); dq.push_front (30); int p = 0; int id = 1; while(id <= n) { int v = dq.front(); dq.pop_front(); if (v == A[id]) id ++; else if (v < A[id]) E[id - 1].pb (v), p ++; else { v --; if (v < 0) continue; dq.push_front (v); dq.push_front (v); } } for (int i = 0; i < dq.size(); i ++) E[id - 1].pb (dq[i]); p += dq.size(); k -= p; for (int i = 1; i <= n; i++) { printf ("%d ", A[i]); for (auto l: E[i]) { vector <int> vv; dq.clear(); dq.push_back (l); while(k > 0 && !dq.empty()){ int v = dq.front(); dq.pop_front(); v --; if (v >= 0) { dq.push_front(v); dq.push_front(v); k --; } else vv.push_back(0); } for (int j = 0; j < dq.size(); j ++) vv.push_back (dq[j]); for (int j = 0; j < vv.size(); j ++) printf ("%d ", vv[j]); } } return 0; }

Compilation message (stderr)

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:63:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < dq.size(); i ++)
                  ~~^~~~~~~~~~~
zalmoxis.cpp:92:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          for (int j = 0; j < dq.size(); j ++)
                          ~~^~~~~~~~~~~
zalmoxis.cpp:95:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          for (int j = 0; j < vv.size(); j ++)
                          ~~^~~~~~~~~~~
zalmoxis.cpp:34:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf ("%d%d", &n, &k);
  ~~~~~~^~~~~~~~~~~~~~~~
zalmoxis.cpp:37:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf ("%d", A + i);
   ~~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...