Submission #3770761
Source Code Expand
#include <cstdio> #include <set> #include <queue> #include <vector> #include <algorithm> #include <iostream> using namespace std; #define REP(i, n) for(int i = 0; i < (int)(n); ++i) typedef long long ll; int n; int k; int nQuery; int vs[2000+10]; // int ms[2000+10][2010]; // int is[2000+10][2010]; struct K { vector<int> sorted; int used = 0; }; bool operator>(const K& k1, const K& k2) { return k1.sorted[0] > k2.sorted[0]; } int main(void) { scanf("%d%d%d", &n, &k, &nQuery); set<int> ss; ss.insert(0); REP(i, n) { scanf("%d", &vs[i]); ss.insert(vs[i]); } int res = 2000000000; for(int v : ss) { priority_queue<K, vector<K>, greater<K> > q; { // init int lastOmit = -1; vector<int> sorted; REP(i, n) { if(vs[i] <= v) { K r; r.used = 0; if((int)sorted.size() >= k) { sort(sorted.begin(), sorted.end()); r.sorted = sorted; q.push(r); } lastOmit = i; sorted.clear(); } else { sorted.push_back(vs[i]); } } K r; r.used = 0; if((int)sorted.size() >= k) { sort(sorted.begin(), sorted.end()); r.sorted = sorted; q.push(r); } } int maxi = -1; int mini = 2000000000; int cnt = 0; while(cnt < nQuery && !q.empty()) { K cur = q.top(); q.pop(); int curV = cur.sorted[cur.used]; maxi = max(maxi, curV); mini = min(mini, curV); cur.used++; if((int)cur.sorted.size() - cur.used >= k) { q.push(cur); } ++cnt; } // cerr << v << " " << mini << " " << maxi << " " << cnt << endl; if(cnt == nQuery) { int cur = maxi - mini; res = min(res, cur); } else { break; } } printf("%d\n", res); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Range Minimum Queries |
User | ush |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1940 Byte |
Status | WA |
Exec Time | 329 ms |
Memory | 384 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:28:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d", &n, &k, &nQuery); ^ ./Main.cpp:32:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &vs[i]); ^
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 600 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
subtask_1_01.txt | AC | 1 ms | 256 KB |
subtask_1_02.txt | AC | 1 ms | 256 KB |
subtask_1_03.txt | WA | 82 ms | 384 KB |
subtask_1_04.txt | AC | 2 ms | 256 KB |
subtask_1_05.txt | AC | 1 ms | 256 KB |
subtask_1_06.txt | AC | 2 ms | 256 KB |
subtask_1_07.txt | AC | 20 ms | 384 KB |
subtask_1_08.txt | AC | 3 ms | 384 KB |
subtask_1_09.txt | AC | 130 ms | 384 KB |
subtask_1_10.txt | AC | 2 ms | 256 KB |
subtask_1_11.txt | WA | 21 ms | 384 KB |
subtask_1_12.txt | WA | 82 ms | 384 KB |
subtask_1_13.txt | WA | 99 ms | 384 KB |
subtask_1_14.txt | AC | 18 ms | 384 KB |
subtask_1_15.txt | WA | 16 ms | 384 KB |
subtask_1_16.txt | AC | 4 ms | 384 KB |
subtask_1_17.txt | AC | 193 ms | 384 KB |
subtask_1_18.txt | AC | 33 ms | 384 KB |
subtask_1_19.txt | AC | 118 ms | 384 KB |
subtask_1_20.txt | AC | 43 ms | 384 KB |
subtask_1_21.txt | AC | 32 ms | 384 KB |
subtask_1_22.txt | AC | 4 ms | 384 KB |
subtask_1_23.txt | AC | 38 ms | 256 KB |
subtask_1_24.txt | AC | 30 ms | 384 KB |
subtask_1_25.txt | WA | 39 ms | 256 KB |
subtask_1_26.txt | WA | 19 ms | 384 KB |
subtask_1_27.txt | AC | 2 ms | 256 KB |
subtask_1_28.txt | AC | 4 ms | 256 KB |
subtask_1_29.txt | AC | 329 ms | 384 KB |
subtask_1_30.txt | AC | 2 ms | 256 KB |
subtask_1_31.txt | WA | 21 ms | 384 KB |
subtask_1_32.txt | WA | 17 ms | 384 KB |
subtask_1_33.txt | AC | 2 ms | 384 KB |
subtask_1_34.txt | AC | 2 ms | 384 KB |
subtask_1_35.txt | AC | 3 ms | 384 KB |
subtask_1_36.txt | AC | 3 ms | 384 KB |
subtask_1_37.txt | AC | 102 ms | 384 KB |
subtask_1_38.txt | AC | 2 ms | 384 KB |
subtask_1_39.txt | AC | 8 ms | 384 KB |
subtask_1_40.txt | AC | 3 ms | 384 KB |
subtask_1_41.txt | AC | 2 ms | 256 KB |
subtask_1_42.txt | AC | 2 ms | 256 KB |
subtask_1_43.txt | AC | 2 ms | 256 KB |
subtask_1_44.txt | AC | 3 ms | 256 KB |
subtask_1_45.txt | AC | 35 ms | 384 KB |
subtask_1_46.txt | AC | 2 ms | 256 KB |
subtask_1_47.txt | AC | 2 ms | 384 KB |
subtask_1_48.txt | AC | 2 ms | 384 KB |