제출 #170484

#제출 시각아이디문제언어결과실행 시간메모리
170484mcdx9524Money (IZhO17_money)C++14
100 / 100
218 ms15024 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e6 + 7; int t[N]; int upd(int p, int x) { for (; p < N; p = (p | (p + 1))) { t[p] += x; } } int sum(int p) { int res = 0; for (; p >= 0; p = (p & (p + 1)) - 1) { res += t[p]; } return res; } int sum(int l, int r) { if (l > r) { return 0; } if (l == 0) { return sum(r); } else { return sum(r) - sum(l - 1); } } int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector <int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } int ans = 0; int prv = 0; for (int i = 1; i < n; i++) { if (a[i] < a[i - 1] || sum(a[prv] + 1, a[i] - 1)) { for (int j = i - 1; j >= prv; j--) { upd(a[j], 1); } prv = i; ans++; } } cout << ans + 1 << '\n'; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

money.cpp: In function 'int upd(int, int)':
money.cpp:15:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...