Main.cc: In function ‘void DSU::undo(int)’: Main.cc:62:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(ops.size() > ver){ ~~~~~~~~~~~^~~~~ Main.cc:63:18: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z auto [x, px, szx, sumx, upx] = ops.back(); ^ Main.cc: In function ‘void solve(int, int, int)’: Main.cc:76:14: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z for(auto [a, b] : tr[u]){ ^ Main.cc: In function ‘int main()’: Main.cc:119:20: error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14 auto dfs = [&](auto &&dfs, int u) -> void { ^~~~ Main.cc: In lambda function: Main.cc:125:23: error: expression cannot be used as a function dfs(dfs, j); ^ Main.cc: In function ‘int main()’: Main.cc:130:15: error: no match for call to ‘(main()::) (main()::&, int)’ dfs(dfs, 1); ^ Main.cc:119:42: note: candidate: main():: auto dfs = [&](auto &&dfs, int u) -> void { ^~~~ Main.cc:119:42: note: no known conversion for argument 1 from ‘main()::’ to ‘int&&’