Submission #858865
Source Code Expand
Copy
#include <iostream> #include <iomanip> #include <vector> #include <algorithm> #include <numeric> #include <functional> #include <cmath> #include <queue> #include <stack> #include <set> #include <map> #include <sstream> #include <string> #define repd(i,a,b) for (int i=(int)(a);i<(int)(b);i++) #define rep(i,n) repd(i,0,n) #define all(x) (x).begin(),(x).end() #define mod 1000000007 #define inf 2000000007 #define mp make_pair #define pb push_back typedef long long ll; using namespace std; template <typename T> inline void output(T a, int p) { if(p) cout << fixed << setprecision(p) << a << "\n"; else cout << a << "\n"; } // end of template int main() { cin.tie(0); ios::sync_with_stdio(0); // source code int N; cin >> N; vector<ll> X(N); rep(i, N) cin >> X[i]; ll L; cin >> L; vector<int> B(N); rep(i, N){ int l = i + 1, r = N; while(r - l > 1){ int mid = (l + r) / 2; if(X[mid] - X[i] <= L) l = mid; else r = mid; } B[i] = l; } // doubling int n = N; int logN = 1; while(n > 0) { n >>= 1; logN++; } vector<vector<int>> D(logN, vector<int>(N)); D[0] = B; repd(i, 1, logN){ rep(j, N){ if (D[i - 1][j] == N) D[i][j] = N; else D[i][j] = D[i - 1][D[i - 1][j]]; } } int Q; cin >> Q; vector<pair<int, int>> A(Q); rep(i, Q){ int a, b; cin >> a >> b; if(a > b) swap(a, b); a--, b--; int ret = 1; for(int j = logN - 1; j >= 0; j--){ if(D[j][a] < b){ ret += 1 << j; a = D[j][a]; } } output(ret, 0); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Tak and Hotels |
User | ctyl |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1894 Byte |
Status | AC |
Exec Time | 166 ms |
Memory | 9848 KB |
Judge Result
Set Name | Sample | Subtask1 | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 200 / 200 | 500 / 500 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | example_01.txt |
Subtask1 | example_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt |
All | example_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
example_01.txt | AC | 4 ms | 256 KB |
subtask1_01.txt | AC | 4 ms | 256 KB |
subtask1_02.txt | AC | 4 ms | 256 KB |
subtask1_03.txt | AC | 5 ms | 384 KB |
subtask1_04.txt | AC | 5 ms | 384 KB |
subtask1_05.txt | AC | 6 ms | 384 KB |
subtask1_06.txt | AC | 5 ms | 256 KB |
subtask1_07.txt | AC | 5 ms | 256 KB |
subtask1_08.txt | AC | 5 ms | 384 KB |
subtask1_09.txt | AC | 5 ms | 384 KB |
subtask1_10.txt | AC | 5 ms | 384 KB |
subtask1_11.txt | AC | 5 ms | 384 KB |
subtask1_12.txt | AC | 5 ms | 384 KB |
subtask1_13.txt | AC | 5 ms | 384 KB |
subtask2_01.txt | AC | 141 ms | 9720 KB |
subtask2_02.txt | AC | 166 ms | 9848 KB |
subtask2_03.txt | AC | 141 ms | 9592 KB |
subtask2_04.txt | AC | 75 ms | 6396 KB |
subtask2_05.txt | AC | 93 ms | 6524 KB |
subtask2_06.txt | AC | 117 ms | 9464 KB |
subtask2_07.txt | AC | 149 ms | 9720 KB |
subtask2_08.txt | AC | 157 ms | 9848 KB |
subtask2_09.txt | AC | 160 ms | 9848 KB |
subtask2_10.txt | AC | 155 ms | 9848 KB |
subtask2_11.txt | AC | 149 ms | 9112 KB |
subtask2_12.txt | AC | 100 ms | 9848 KB |
subtask2_13.txt | AC | 115 ms | 9464 KB |