제출 #1054268

#제출 시각아이디문제언어결과실행 시간메모리
1054268unnickSkyscraper (JOI16_skyscraper)C++14
5 / 100
2067 ms604 KiB
#include <iostream> #include <vector> using namespace std; int main() { int n, l, sum = 0; cin >> n >> l; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } vector<int> p(n); for (int i = 0; i < n; i++) p[i] = i; vector<int> ct(n); for (int i = 0; i < n; i++) ct[i] = true; while (true) { int s = 0; for (int i = 0; i < n-1; i++) { s += abs(a[p[i]] - a[p[i+1]]); } if (s <= l) sum++; int ptr = n-1; while (ptr >= 0) { ct[p[ptr]] = false; p[ptr]++; while (p[ptr] < n && ct[p[ptr]]) { p[ptr]++; } if (p[ptr] < n) break; ptr--; } if (ptr < 0) break; ct[p[ptr]] = true; for (int i = 0; i < n; i++) { if (!ct[i]) { ct[i] = true; p[++ptr] = i; } } } cout << sum << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...