Submission #3337296
Source Code Expand
#include <bits/stdc++.h> #define ll long long #define REP(i, n) for (ll (i) = 0; (i) < (n); (i)++) #define REPI(i, a, b) for (ll (i) = (a); (i) < (b); (i)++) #define int long long using namespace std; using II = pair<int, int>; using VI = vector<int>; using VVI = vector<VI>; using VVVI = vector<VVI>; using VII = vector<II>; class SuffixArray { public: int N; string S; VI rank; // rank[i]: iから始まるsuffixの辞書順での順位 VI sorted; // sorted[i]: suffixが辞書順i番目となる開始位置のindex SuffixArray(string s) { S = s; N = S.size(); sorted = VI(N); rank = VI(N); REP (i, N) { sorted[i] = i; rank[i] = S[i]; } int k; function<bool(int, int)> compare_sa = [this, &k](int i, int j) { if (rank[i] != rank[j]) { return rank[i] < rank[j]; } int ri = i + k < N ? rank[i + k] : -1; int rj = j + k < N ? rank[j + k] : -1; return ri < rj; }; for (k = 1; k < N; k *= 2) { sort(sorted.begin(), sorted.end(), compare_sa); VI tmp(N, 0); REPI (i, 1, N) { tmp[sorted[i]] = tmp[sorted[i - 1]] + compare_sa(sorted[i - 1], sorted[i]); } rank = tmp; } } // Tが存在する場合はSにおける先頭index, 存在しない場合は-1を返す int find(string T) { int l = 0, r = N; while (r - l > 1) { cout << l << endl; int mid = (l + r) / 2; if (S.compare(sorted[mid], T.size(), T) < 0) { l = mid; } else { r = mid; } } if (S.compare(sorted[l], T.length(), T) != 0) { return -1; } return sorted[l]; } }; signed main() { int K; string S; cin >> K >> S; int N = S.size(); int part = N / (K + 1); int rest = N % (K + 1); SuffixArray sf(S); if (rest == 0) { int ans = 0; REP (i, K + 1) { if (sf.rank[ans] > sf.rank[part * i]) { ans = part * i; } } cout << S.substr(ans, part) << endl; return 0; } int l = -1, r = N - 1; while (r - l > 1) { int mid = (r + l) / 2; int next = 0; int adi = 0; REP (i, K + 1) { if (sf.rank[next] <= sf.rank[sf.sorted[mid]]) { next += part + 1; adi++; } else { next += part; } } if (adi >= rest) { r = mid; } else { l = mid; } } cout << S.substr(sf.sorted[r], part + 1) << endl; }
Submission Info
Submission Time | |
---|---|
Task | B - Problem where Commas Separate Digits |
User | knshnb |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2473 Byte |
Status | WA |
Exec Time | 209 ms |
Memory | 2928 KB |
Judge Result
Set Name | Sample | Dataset1 | Dataset2 | Dataset3 | Dataset4 | Dataset5 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 100 | 0 / 100 | 0 / 200 | 0 / 200 | 0 / 400 | ||||||||||||||||||||||
Status |
|
|
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask_02_ex1.txt, subtask_03_ex2.txt, subtask_03_ex3.txt |
Dataset1 | subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt |
Dataset2 | subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_02_01.txt, subtask_02_02.txt, subtask_02_03.txt, subtask_02_04.txt, subtask_02_05.txt, subtask_02_06.txt, subtask_02_07.txt, subtask_02_08.txt, subtask_02_09.txt, subtask_02_10.txt, subtask_02_11.txt, subtask_02_12.txt, subtask_02_13.txt, subtask_02_14.txt, subtask_02_ex1.txt |
Dataset3 | subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_02_01.txt, subtask_02_02.txt, subtask_02_03.txt, subtask_02_04.txt, subtask_02_05.txt, subtask_02_06.txt, subtask_02_07.txt, subtask_02_08.txt, subtask_02_09.txt, subtask_02_10.txt, subtask_02_11.txt, subtask_02_12.txt, subtask_02_13.txt, subtask_02_14.txt, subtask_02_ex1.txt, subtask_03_01.txt, subtask_03_02.txt, subtask_03_03.txt, subtask_03_04.txt, subtask_03_05.txt, subtask_03_06.txt, subtask_03_07.txt, subtask_03_08.txt, subtask_03_09.txt, subtask_03_10.txt, subtask_03_11.txt, subtask_03_12.txt, subtask_03_13.txt, subtask_03_14.txt, subtask_03_15.txt, subtask_03_ex2.txt, subtask_03_ex3.txt |
Dataset4 | subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_02_01.txt, subtask_02_02.txt, subtask_02_03.txt, subtask_02_04.txt, subtask_02_05.txt, subtask_02_06.txt, subtask_02_07.txt, subtask_02_08.txt, subtask_02_09.txt, subtask_02_10.txt, subtask_02_11.txt, subtask_02_12.txt, subtask_02_13.txt, subtask_02_14.txt, subtask_02_ex1.txt, subtask_03_01.txt, subtask_03_02.txt, subtask_03_03.txt, subtask_03_04.txt, subtask_03_05.txt, subtask_03_06.txt, subtask_03_07.txt, subtask_03_08.txt, subtask_03_09.txt, subtask_03_10.txt, subtask_03_11.txt, subtask_03_12.txt, subtask_03_13.txt, subtask_03_14.txt, subtask_03_15.txt, subtask_03_ex2.txt, subtask_03_ex3.txt, subtask_04_01.txt, subtask_04_02.txt, subtask_04_03.txt, subtask_04_04.txt, subtask_04_05.txt, subtask_04_06.txt, subtask_04_07.txt, subtask_04_08.txt, subtask_04_09.txt, subtask_04_10.txt, subtask_04_11.txt, subtask_04_12.txt, subtask_04_13.txt, subtask_04_14.txt, subtask_04_15.txt |
Dataset5 | subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_02_01.txt, subtask_02_02.txt, subtask_02_03.txt, subtask_02_04.txt, subtask_02_05.txt, subtask_02_06.txt, subtask_02_07.txt, subtask_02_08.txt, subtask_02_09.txt, subtask_02_10.txt, subtask_02_11.txt, subtask_02_12.txt, subtask_02_13.txt, subtask_02_14.txt, subtask_02_ex1.txt, subtask_03_01.txt, subtask_03_02.txt, subtask_03_03.txt, subtask_03_04.txt, subtask_03_05.txt, subtask_03_06.txt, subtask_03_07.txt, subtask_03_08.txt, subtask_03_09.txt, subtask_03_10.txt, subtask_03_11.txt, subtask_03_12.txt, subtask_03_13.txt, subtask_03_14.txt, subtask_03_15.txt, subtask_03_ex2.txt, subtask_03_ex3.txt, subtask_04_01.txt, subtask_04_02.txt, subtask_04_03.txt, subtask_04_04.txt, subtask_04_05.txt, subtask_04_06.txt, subtask_04_07.txt, subtask_04_08.txt, subtask_04_09.txt, subtask_04_10.txt, subtask_04_11.txt, subtask_04_12.txt, subtask_04_13.txt, subtask_04_14.txt, subtask_04_15.txt, subtask_05_01.txt, subtask_05_02.txt, subtask_05_03.txt, subtask_05_04.txt, subtask_05_05.txt, subtask_05_06.txt, subtask_05_07.txt, subtask_05_08.txt, subtask_05_09.txt, subtask_05_10.txt, subtask_05_11.txt, subtask_05_12.txt, subtask_05_13.txt, subtask_05_14.txt, subtask_05_15.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask_01_01.txt | AC | 1 ms | 256 KB |
subtask_01_02.txt | AC | 1 ms | 256 KB |
subtask_01_03.txt | WA | 1 ms | 256 KB |
subtask_01_04.txt | AC | 1 ms | 256 KB |
subtask_01_05.txt | AC | 1 ms | 256 KB |
subtask_01_06.txt | AC | 1 ms | 256 KB |
subtask_01_07.txt | AC | 1 ms | 256 KB |
subtask_01_08.txt | WA | 1 ms | 256 KB |
subtask_01_09.txt | AC | 1 ms | 256 KB |
subtask_01_10.txt | AC | 1 ms | 256 KB |
subtask_01_11.txt | AC | 1 ms | 256 KB |
subtask_01_12.txt | AC | 1 ms | 256 KB |
subtask_01_13.txt | WA | 1 ms | 256 KB |
subtask_01_14.txt | AC | 1 ms | 256 KB |
subtask_01_15.txt | WA | 1 ms | 256 KB |
subtask_01_16.txt | AC | 1 ms | 256 KB |
subtask_01_17.txt | AC | 1 ms | 256 KB |
subtask_02_01.txt | WA | 1 ms | 256 KB |
subtask_02_02.txt | AC | 1 ms | 256 KB |
subtask_02_03.txt | WA | 1 ms | 256 KB |
subtask_02_04.txt | WA | 1 ms | 256 KB |
subtask_02_05.txt | AC | 1 ms | 256 KB |
subtask_02_06.txt | WA | 1 ms | 256 KB |
subtask_02_07.txt | WA | 1 ms | 256 KB |
subtask_02_08.txt | WA | 1 ms | 256 KB |
subtask_02_09.txt | AC | 1 ms | 256 KB |
subtask_02_10.txt | AC | 1 ms | 256 KB |
subtask_02_11.txt | AC | 1 ms | 256 KB |
subtask_02_12.txt | AC | 1 ms | 256 KB |
subtask_02_13.txt | WA | 1 ms | 256 KB |
subtask_02_14.txt | WA | 1 ms | 256 KB |
subtask_02_ex1.txt | AC | 1 ms | 256 KB |
subtask_03_01.txt | AC | 1 ms | 256 KB |
subtask_03_02.txt | AC | 1 ms | 256 KB |
subtask_03_03.txt | WA | 1 ms | 256 KB |
subtask_03_04.txt | WA | 1 ms | 256 KB |
subtask_03_05.txt | AC | 1 ms | 256 KB |
subtask_03_06.txt | WA | 1 ms | 256 KB |
subtask_03_07.txt | WA | 1 ms | 256 KB |
subtask_03_08.txt | WA | 1 ms | 256 KB |
subtask_03_09.txt | AC | 1 ms | 256 KB |
subtask_03_10.txt | AC | 1 ms | 256 KB |
subtask_03_11.txt | AC | 1 ms | 256 KB |
subtask_03_12.txt | AC | 1 ms | 256 KB |
subtask_03_13.txt | AC | 1 ms | 256 KB |
subtask_03_14.txt | AC | 1 ms | 256 KB |
subtask_03_15.txt | AC | 1 ms | 256 KB |
subtask_03_ex2.txt | AC | 1 ms | 256 KB |
subtask_03_ex3.txt | AC | 1 ms | 256 KB |
subtask_04_01.txt | AC | 3 ms | 256 KB |
subtask_04_02.txt | AC | 3 ms | 256 KB |
subtask_04_03.txt | WA | 3 ms | 256 KB |
subtask_04_04.txt | WA | 3 ms | 256 KB |
subtask_04_05.txt | AC | 3 ms | 256 KB |
subtask_04_06.txt | WA | 3 ms | 256 KB |
subtask_04_07.txt | WA | 3 ms | 256 KB |
subtask_04_08.txt | WA | 3 ms | 256 KB |
subtask_04_09.txt | AC | 3 ms | 256 KB |
subtask_04_10.txt | AC | 3 ms | 256 KB |
subtask_04_11.txt | AC | 3 ms | 256 KB |
subtask_04_12.txt | AC | 3 ms | 256 KB |
subtask_04_13.txt | AC | 2 ms | 256 KB |
subtask_04_14.txt | AC | 1 ms | 256 KB |
subtask_04_15.txt | AC | 2 ms | 256 KB |
subtask_05_01.txt | AC | 207 ms | 2816 KB |
subtask_05_02.txt | AC | 209 ms | 2816 KB |
subtask_05_03.txt | WA | 206 ms | 2816 KB |
subtask_05_04.txt | WA | 206 ms | 2816 KB |
subtask_05_05.txt | AC | 206 ms | 2816 KB |
subtask_05_06.txt | WA | 206 ms | 2816 KB |
subtask_05_07.txt | WA | 205 ms | 2816 KB |
subtask_05_08.txt | WA | 206 ms | 2928 KB |
subtask_05_09.txt | AC | 205 ms | 2928 KB |
subtask_05_10.txt | AC | 206 ms | 2816 KB |
subtask_05_11.txt | AC | 165 ms | 2816 KB |
subtask_05_12.txt | AC | 165 ms | 2816 KB |
subtask_05_13.txt | AC | 148 ms | 2228 KB |
subtask_05_14.txt | AC | 191 ms | 2688 KB |
subtask_05_15.txt | AC | 74 ms | 1340 KB |