Pagini recente » Cod sursa (job #926455) | Cod sursa (job #2173049) | Cod sursa (job #2383372) | Cod sursa (job #1255120) | Cod sursa (job #2465403)
#include <bits/stdc++.h>
#define DEBUG(x) cerr << (#x) << ": " << x << endl
using namespace std;
struct Suffix {
int idx0, idx1, i;
bool operator<(const Suffix &other) const {
if (idx0 != other.idx0) return idx0 < other.idx0;
if (idx1 != other.idx1) return idx1 < other.idx1;
return i < other.i;
}
}
int Solve(const string &s) {
int n = s.size();
vector<int> idx(n);
for (int i = 0; i < n; ++i) {
idx[i] = text[i] - 'A';
start[i] = -1;
}
for (int l = 2; (l >> 1) < n && (l >> 1) <= 20; l <<= 1) {
for (int i = 0; i < n; ++i) {
v[i].idx0 = idx[i];
v[i].idx1 = (i + (l >> 1) < n) ? idx[i + (l >> 1)] : -1;
v[i].i = i;
}
sort(v, v + n);
idx[v[0].i] = 0;
for (int i = 1; i < n; ++i) {
idx[v[i].i] = idx[v[i - 1].i] + !(v[i].idx0 == v[i - 1].idx0 &&
v[i].idx1 == v[i - 1].idx1);
}
}
}
int main() {
//ifstream cin(".in");
//ofstream cout(".out");
ios::sync_with_stdio(0);
cin.tie(0);
}