Skip to content

Instantly share code, notes, and snippets.

@demidenko
demidenko / sufar.cpp
Created November 25, 2022 15:48
sufar nlogn slow
vector<int> sufar(string s) {
int n = size(s);
vector<int> p(n), c(n);
iota(begin(p), end(p), 0);
sort(begin(p), end(p), [&](int i, int j) { return s[i] < s[j]; });
for(int i=1; i<n; ++i) c[p[i]] = c[p[i-1]] + (s[p[i]]!=s[p[i-1]]);
for(int k=1; k<n; k*=2) {
vector<vector<pair<int,int>>> f(n);
for(int i : p) {
int j = i - k; if(j < 0) j += n;
// ==UserScript==
// @name codeforces-friends-online
// @namespace demich
// @include https://codeforces.com/friends
// @version 2.0
// @grant none
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// ==/UserScript==