Submission #23200

#TimeUsernameProblemLanguageResultExecution timeMemory
23200model_codeVudu (COCI15_vudu)C++11
140 / 140
453 ms38124 KiB
#include <cstdio> #include <cmath> #include <vector> #include <algorithm> #include <cstring> using namespace std; const int MAXN = 1 << 20; typedef pair <double, int> pdi; int n; double a[MAXN]; bool cmp (const pdi &A, const pdi &B) { if (A.first != B.first) return A.first < B.first; return A.second < B.second; } int loga[MAXN]; void update (int pos) { pos += 10; while (pos < MAXN) { ++loga[pos]; pos += pos&-pos; } } int query (int pos) { pos += 10; int ret = 0; while (pos > 0) { ret += loga[pos]; pos -= pos&-pos; } return ret; } int main (void){ scanf("%d", &n); for (int i = 0; i < n; ++i) scanf("%lf", &a[i]); int p; scanf("%d", &p); for (int i = 0; i < n; ++i) { a[i] -= p; if (i > 0) a[i] += a[i-1]; } vector <pdi> V; for (int i = 0; i < n; ++i) V.push_back(pdi(a[i], i)); V.push_back(pdi(0, -1)); sort(V.begin(), V.end(), cmp); int pos = 0; long long ans = 0; for (int i = 0; i < V.size(); ++i) { while (pos < i && (V[i].first - V[pos].first) >= 0) update(V[pos++].second); ans += query(V[i].second); } printf("%lld\n", ans); return 0; }

Compilation message (stderr)

vudu.cpp: In function 'int main()':
vudu.cpp:58:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < V.size(); ++i) {
                     ^
vudu.cpp:40:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &n);
                  ^
vudu.cpp:41:50: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   for (int i = 0; i < n; ++i) scanf("%lf", &a[i]);
                                                  ^
vudu.cpp:43:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &p);
                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...