mirror of
https://github.com/sharkdp/bat
synced 2024-12-25 19:53:06 +00:00
80 lines
15 KiB
C++
80 lines
15 KiB
C++
|
[38;2;249;38;114m#include[0m[38;2;190;132;255m [0m[38;2;230;219;116m<[0m[38;2;230;219;116mbits/stdc++.h[0m[38;2;230;219;116m>[0m[38;2;190;132;255m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m includes most of the useful libraries[0m
|
|||
|
[38;2;249;38;114m#include[0m[38;2;190;132;255m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mmainwindow.h[0m[38;2;230;219;116m"[0m
|
|||
|
|
|||
|
[38;2;249;38;114musing[0m[38;2;248;248;242m [0m[38;2;249;38;114mnamespace[0m[38;2;248;248;242m std[0m[38;2;248;248;242m;[0m
|
|||
|
|
|||
|
[38;2;117;113;94m/*[0m[38;2;117;113;94m This C program was submitted to help bat[0m
|
|||
|
[38;2;117;113;94m [0m[38;2;117;113;94m*[0m[38;2;117;113;94m with its syntax highlighting tests[0m
|
|||
|
[38;2;117;113;94m [0m[38;2;117;113;94m*/[0m
|
|||
|
|
|||
|
[3;38;2;102;217;239mbool[0m[38;2;248;248;242m [0m[38;2;166;226;46mtest_function[0m[38;2;248;248;242m([0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mx[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m [0m[3;38;2;253;151;31my[0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mx [0m[38;2;249;38;114m==[0m[38;2;248;248;242m y [0m[38;2;249;38;114m||[0m[38;2;248;248;242m x [0m[38;2;249;38;114m+[0m[38;2;248;248;242m y [0m[38;2;249;38;114m==[0m[38;2;248;248;242m x [0m[38;2;249;38;114m*[0m[38;2;248;248;242m y[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m}[0m
|
|||
|
|
|||
|
[38;2;248;248;242mMainWindow[0m[38;2;248;248;242m::[0m[38;2;166;226;46mMainWindow[0m[38;2;248;248;242m([0m[38;2;248;248;242mQWidget [0m[38;2;249;38;114m*[0m[3;38;2;253;151;31mparent[0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[38;2;248;248;242mQMainWindow[0m[38;2;248;248;242m([0m[38;2;248;248;242mparent[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mui[0m[38;2;248;248;242m([0m[38;2;249;38;114mnew[0m[38;2;248;248;242m Ui[0m[38;2;248;248;242m::[0m[38;2;248;248;242mMainWindow[0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m ui[0m[38;2;248;248;242m->[0m[38;2;248;248;242msetupUi[0m[38;2;248;248;242m([0m[38;2;255;255;255mthis[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242mresize[0m[38;2;248;248;242m([0m[38;2;190;132;255m560[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m420[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Image menu[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242mconnect[0m[38;2;248;248;242m([0m[38;2;248;248;242mui[0m[38;2;248;248;242m->[0m[38;2;255;255;255mactionOpen[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242mQAction[0m[38;2;248;248;242m::[0m[38;2;248;248;242mtriggered[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242mMainWindow[0m[38;2;248;248;242m::[0m[38;2;248;248;242mopen[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m MainWindow[0m[38;2;248;248;242m::[0m[38;2;249;38;114m~[0m[38;2;248;248;242mMainWindow[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mdelete[0m[38;2;248;248;242m ui[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m
|
|||
|
[38;2;248;248;242m [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m y [0m[38;2;249;38;114m=[0m[38;2;248;248;242m ui[0m[38;2;248;248;242m->[0m[38;2;255;255;255mgraphicsView[0m[38;2;248;248;242m->[0m[38;2;248;248;242msize[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;248;248;242mheight[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m-[0m[38;2;248;248;242m image[0m[38;2;248;248;242m.[0m[38;2;248;248;242mheight[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m x [0m[38;2;249;38;114m=[0m[38;2;248;248;242m ui[0m[38;2;248;248;242m->[0m[38;2;255;255;255mgraphicsView[0m[38;2;248;248;242m->[0m[38;2;248;248;242msize[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;248;248;242mwidth[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m-[0m[38;2;248;248;242m image[0m[38;2;248;248;242m.[0m[38;2;248;248;242mwidth[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[3;38;2;102;217;239mvoid[0m[38;2;248;248;242m [0m[38;2;248;248;242mMainWindow[0m[38;2;248;248;242m::[0m[38;2;248;248;242mshowImage[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Reset scale[0m
|
|||
|
[38;2;248;248;242m ui[0m[38;2;248;248;242m->[0m[38;2;255;255;255mgraphicsView[0m[38;2;248;248;242m->[0m[38;2;248;248;242mresetMatrix[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242mstatusBar[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m->[0m[38;2;248;248;242mshowMessage[0m[38;2;248;248;242m([0m[38;2;248;248;242mQString[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m%1 [0m[38;2;190;132;255m%2x[0m[38;2;190;132;255m%3p[0m[38;2;230;219;116mx %4 kB[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;248;248;242marg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfile[0m[38;2;248;248;242m.[0m[38;2;248;248;242mfileName[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;248;248;242marg[0m[38;2;248;248;242m([0m[38;2;248;248;242mimage[0m[38;2;248;248;242m.[0m[38;2;248;248;242mwidth[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;248;248;242marg[0m[38;2;248;248;242m([0m[38;2;248;248;242mimage[0m[38;2;248;248;242m.[0m[38;2;248;248;242mheight[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;248;248;242marg[0m[38;2;248;248;242m([0m[38;2;248;248;242mQFile[0m[38;2;248;248;242m([0m[38;2;248;248;242mcurrentFile[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;248;248;242msize[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m/[0m[38;2;248;248;242m [0m[38;2;190;132;255m1000[0m[38;2;190;132;255m.[0m[38;2;190;132;255m0[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m
|
|||
|
[38;2;248;248;242m}[0m
|
|||
|
|
|||
|
[3;38;2;102;217;239mint[0m[38;2;248;248;242m [0m[38;2;166;226;46mmain[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m tc[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m cin [0m[38;2;249;38;114m>>[0m[38;2;248;248;242m tc[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mtc[0m[38;2;249;38;114m--[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m for each test case[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m n[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m cin [0m[38;2;249;38;114m>>[0m[38;2;248;248;242m n[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m take n[0m
|
|||
|
[38;2;248;248;242m vector[0m[38;2;248;248;242m<[0m[38;2;248;248;242mpair[0m[38;2;248;248;242m<[0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m,[0m[38;2;248;248;242m string[0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m v[0m[38;2;248;248;242m;[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m a[0m[38;2;248;248;242m[[0m[38;2;248;248;242mn[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m b[0m[38;2;248;248;242m[[0m[38;2;248;248;242mn[0m[38;2;248;248;242m][0m[38;2;248;248;242m;[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m n[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m cin [0m[38;2;249;38;114m>>[0m[38;2;248;248;242m a[0m[38;2;248;248;242m[[0m[38;2;248;248;242mi[0m[38;2;248;248;242m][0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m take arrays[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m n[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m cin [0m[38;2;249;38;114m>>[0m[38;2;248;248;242m b[0m[38;2;248;248;242m[[0m[38;2;248;248;242mi[0m[38;2;248;248;242m][0m[38;2;248;248;242m;[0m
|
|||
|
|
|||
|
[38;2;248;248;242m priority_queue[0m[38;2;248;248;242m<[0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m>[0m[38;2;248;248;242m pq[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m inbuilt data structure - max heap (available in the bits/stdc++)[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m n[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m pq[0m[38;2;248;248;242m.[0m[38;2;248;248;242mpush[0m[38;2;248;248;242m([0m[38;2;248;248;242ma[0m[38;2;248;248;242m[[0m[38;2;248;248;242mi[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m push elements into heap[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m n[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m for each element in B[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m [0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m top_ele [0m[38;2;249;38;114m=[0m[38;2;248;248;242m pq[0m[38;2;248;248;242m.[0m[38;2;248;248;242mtop[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m max element in heap[0m
|
|||
|
[38;2;248;248;242m pq[0m[38;2;248;248;242m.[0m[38;2;248;248;242mpop[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m deletion[0m
|
|||
|
[38;2;248;248;242m pq[0m[38;2;248;248;242m.[0m[38;2;248;248;242mpush[0m[38;2;248;248;242m([0m[38;2;248;248;242mtop_ele [0m[38;2;249;38;114m^[0m[38;2;248;248;242m b[0m[38;2;248;248;242m[[0m[38;2;248;248;242mi[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m push after operation[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m n [0m[38;2;249;38;114m-[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i [0m[38;2;249;38;114m>=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i[0m[38;2;249;38;114m--[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m restore A in ascending order[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
|
|||
|
[38;2;248;248;242m a[0m[38;2;248;248;242m[[0m[38;2;248;248;242mi[0m[38;2;248;248;242m][0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m pq[0m[38;2;248;248;242m.[0m[38;2;248;248;242mtop[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m pq[0m[38;2;248;248;242m.[0m[38;2;248;248;242mpop[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m
|
|||
|
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[3;38;2;102;217;239mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m n[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m)[0m
|
|||
|
[38;2;248;248;242m cout [0m[38;2;249;38;114m<<[0m[38;2;248;248;242m a[0m[38;2;248;248;242m[[0m[38;2;248;248;242mi[0m[38;2;248;248;242m][0m[38;2;248;248;242m [0m[38;2;249;38;114m<<[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116m [0m[38;2;230;219;116m"[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m print A[0m
|
|||
|
|
|||
|
[38;2;248;248;242m cout [0m[38;2;249;38;114m<<[0m[38;2;248;248;242m endl[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;248;248;242m}[0m
|
|||
|
[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m
|
|||
|
[38;2;248;248;242m}[0m
|