Skip to content

Instantly share code, notes, and snippets.

@ia7ck
ia7ck / CSA10D.cpp
Created August 6, 2017 06:53
CSAcademy Round #10: D.Subarray Medians
#include<iostream>
#include<vector>
using namespace std;
#define int long long
#define repeat(i,n) for(int i=0;i<(n);i++)
struct Median{
int K, k, md;
vector<int> prv, nxt;
@ia7ck
ia7ck / LIS.rb
Last active April 29, 2017 09:29
LongestIncreasingSubsequence(strictly increasing)
class SegmentTree
def initialize(n)
@root, @nil=0, 0
@sz=2**(Math.log(n)/Math.log(2)).ceil
@seg=Array.new(2*@sz-1){@nil}
end
attr_accessor :seg
def max(a, b, i=@root, l=0, r=@sz)
@ia7ck
ia7ck / ARC033C.rb
Last active April 1, 2017 17:24
ARC 033-C データ構造
class BinaryIndexedTree
def initialize
@N=200_001
@bit=Array.new(@N){0}
end
def add(k, x)
while k<=@N
@bit[k]+=x
k+=(k&-k)
@ia7ck
ia7ck / ABC026C.rb
Last active March 26, 2017 05:37
ABC 026-C 高橋君の給料
n=gets.to_i
@g=Array.new(n){[]}
(n-1).times do |i|
b=gets.to_i
@g[b-1]<< i+1
end
def rec i
if @g[i].size()==0
1
@ia7ck
ia7ck / ARC029C_Prim.cpp
Created March 4, 2017 16:10
ARC 029-C 高橋君と国家
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
#define int long long
struct Edge{
int to, c;
@ia7ck
ia7ck / ARC029C_Kruskal.cpp
Last active March 4, 2017 16:07
ARC 029-C 高橋君と国家
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#define int long long
struct Edge{
int a, b, c;
@ia7ck
ia7ck / ARC056B.cpp
Created March 3, 2017 03:32
ARC 056-B 駐車場
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
typedef pair<int, int> pii;
vector<int> g[2*100000];
int main(){
@ia7ck
ia7ck / yuki115don.cpp
Created October 31, 2016 02:15
yukicoder No.115 遠足のおやつ
#include<iostream>
#include<vector>
using namespace std;
int mySum(int m){
return (m)*(m+1)/2;
}
@ia7ck
ia7ck / ABC023C.cpp
Created October 30, 2016 07:09
ABC 023-C 収集王
#include<iostream>
#include<vector>
#include<stdio.h>
#define rep(i, n) for(int i=0; i<(n); i++)
#define pb push_back
using namespace std;
int main(){
@ia7ck
ia7ck / ARC050B.cpp
Created October 30, 2016 07:07
ARC 050-B 花束
#include<iostream>
using namespace std;
#define int long long
int R, B, x, y;
int cal(int k){
int r=(R-k), b=(B-k);
if(r<0||b<0) return -1;