# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
798623 | 2023-07-30T21:54:18 Z | bane | Watering can (POI13_kon) | C++17 | 2597 ms | 14088 KB |
#include <iostream> #include <algorithm> #include <vector> #include <map> #include <queue> #include <set> #include <unordered_map> #include <unordered_set> #include <string> #include <string.h> #include <bitset> #include <numeric> #include <utility> using namespace std; const int nax = 300'001; const int sq = 500; int N, K, t[nax], zers[nax]; vector<int>SQE[500]; vector<int>ps[500]; void inicjuj(int n, int k, int *D) { for (int i = 0; i < n; i++) { t[i] = D[i]; SQE[i / sq].push_back(t[i]); } N = n, K = k; for (int i = 0; i <= n / sq; i++){ ps[i].resize(SQE[i].size()); sort(SQE[i].begin(), SQE[i].end()); SQE[i].erase(unique(SQE[i].begin(),SQE[i].end()),SQE[i].end()); for (int j = i * sq; j < n && j /sq == i; j++){ int pos = lower_bound(SQE[i].begin(), SQE[i].end(), t[j]) - SQE[i].begin(); ps[i][pos]++; } for (int j = ps[i].size() - 2; j >= 0; j--){ ps[i][j] += ps[i][j + 1]; } } } void podlej(int a, int b) { //--a,--b; for (int i = a / sq; i * sq <= b; i++){ // cout << i << endl; if (a <= i * sq && b >= (i + 1) * sq - 1){ zers[i]++; }else{ SQE[i].clear(); for (int j = max(a,300*i); j / sq == i && j <= b; j++){ t[j]+=zers[i]; SQE[i].push_back(t[j] + 1); t[j]++; } zers[i] = 0; sort(SQE[i].begin(), SQE[i].end()); SQE[i].erase(unique(SQE[i].begin(),SQE[i].end()),SQE[i].end()); ps[i].clear(); ps[i].resize(SQE[i].size()); for (int j = max(a,300*i); j / sq == i && j <= b; j++){ int pos = lower_bound(SQE[i].begin(), SQE[i].end(), t[j]) - SQE[i].begin(); ps[i][pos]++; } for (int j = ps[i].size() - 2; j >= 0; j--){ ps[i][j] += ps[i][j + 1]; } } } } int dojrzale(int a, int b) { // --a,--b; int ans = 0; for (int i = a / sq; i * sq <= b; i++){ if (a <= i * sq && b >= (i + 1) * sq - 1){ int pos = lower_bound(SQE[i].begin(), SQE[i].end(), K - zers[i]) - SQE[i].begin(); if (pos < SQE[i].size())ans += ps[i][pos]; }else{ for (int j = max(a, i * 300); j / sq == i && j <= b; j++){ if (t[j] + zers[i] >= K)++ans; } } } return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 1492 KB | Output is correct |
2 | Correct | 1 ms | 1492 KB | Output is correct |
3 | Correct | 1 ms | 1492 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 1492 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 475 ms | 3628 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 645 ms | 4344 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 846 ms | 6112 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1927 ms | 9980 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2090 ms | 10380 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2597 ms | 14088 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 57 ms | 12492 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 58 ms | 12716 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |