├── .gitignore
├── 404.html
├── LICENSE
├── README.md
├── index.html
└── src
├── ACMNB.cpp
├── ADS.cpp
├── AMSSEQ.cpp
├── ANT.cpp
├── AREA.cpp
├── ASSIGN1.cpp
├── AUCTION.cpp
├── AZNET.cpp
├── BALLGAME.cpp
├── BARIC.cpp
├── BARICAVN.cpp
├── BASEH.cpp
├── BCDIV.cpp
├── BEADSNB.cpp
├── BESTSPOT.cpp
├── BIGNUM.cpp
├── BINARY2.cpp
├── BINLADEN.cpp
├── BLGEN.cpp
├── BLOPER.cpp
├── BONES.cpp
├── BONGDA.cpp
├── BONUS.cpp
├── BONUS.js
├── BONUS13.cpp
├── BWPOINTS.cpp
├── C11BC1.cpp
├── C11BC2.cpp
├── C11BEAU.cpp
├── C11CAL.cpp
├── C11CAVE.cpp
├── C11DK2.cpp
├── C11ID.cpp
├── C11KM.cpp
├── C11PAIRS.cpp
├── C11SEQ.cpp
├── C11STR2.cpp
├── C11SUM.cpp
├── C11TRCNT.cpp
├── CAR.cpp
├── CARDS.cpp
├── CARDSHUF.cpp
├── CATALAN.cpp
├── CBUYING.cpp
├── CENTRE28.cpp
├── CHAIN2.cpp
├── CHEAT.cpp
├── CHEER.cpp
├── CHESSCBG.cpp
├── CHNTOWER.cpp
├── CHUOIHAT.cpp
├── CLOCK.cpp
├── COLLECT.cpp
├── COMNET.cpp
├── COPRIMES.cpp
├── COUNTCBG.cpp
├── COUNTPL.cpp
├── CPPSET.cpp
├── CRATE.cpp
├── CREC01.cpp
├── CRECT.cpp
├── CT.cpp
├── CTNBULLS.cpp
├── CTREE.cpp
├── CWAY.java
├── DHEXP.cpp
├── DHFRBUS.cpp
├── DHLEXP.cpp
├── DHLOCK.cpp
├── DHLOCO.cpp
├── DHRECT.cpp
├── DHSERV.cpp
├── DHTABLE2.cpp
├── DQUERY.cpp
├── DTDOI.cpp
├── DTGAME.cpp
├── DTKSUB.cpp
├── EGG.cpp
├── FBRICK.cpp
├── FINDNUM.cpp
├── FIRS.cpp
├── FLOW1.cpp
├── FLOYD.cpp
├── FOCUS.cpp
├── FWATER.cpp
├── GONDOR.cpp
├── GRAPH_.cpp
├── GSS.cpp
├── HAF1.cpp
├── HAOI6000.cpp
├── HBTLCA.cpp
├── HEAP1.cpp
├── HELPPM.cpp
├── HIREHP.cpp
├── HOUSES.cpp
├── HSPC14A.cpp
├── HSPC14H.cpp
├── HSPC14I.cpp
├── HSPC14J.cpp
├── INSUL.cpp
├── IOIBIN.cpp
├── IVANA.cpp
├── KAGAIN.cpp
├── KANDP.cpp
├── KCOIN.cpp
├── KDIFF.cpp
├── KGSS.cpp
├── KINV.cpp
├── KKDD.cpp
├── KMEDIAN.cpp
├── KMIN.cpp
├── KPLANK.cpp
├── KQUERY.cpp
├── LASCALE.cpp
├── LATGACH.cpp
├── LATGACH4.cpp
├── LEM6.java
├── LEM7.cpp
├── LINEGAME.cpp
├── LIQ.cpp
├── LIS.cpp
├── LNACS.cpp
├── LQDDIV.cpp
├── LQDGONME.cpp
├── LSFIGHT.cpp
├── LTPMSEQ.cpp
├── LUBENICA.cpp
├── LUCKYNUM.cpp
├── M00PAIR.cpp
├── M3TILE.cpp
├── MATCH1.cpp
├── MATCH2.cpp
├── MAXARR1.cpp
├── MAXCUB.cpp
├── MBEEWALK.cpp
├── MBLAST.cpp
├── MCARDS.cpp
├── MCOINS.cpp
├── MDIGITS2.cpp
├── MDOLLS.cpp
├── MECUNG.cpp
├── MEDIAN.cpp
├── MESSAGE.cpp
├── MINCUT.cpp
├── MINK.cpp
├── MINROAD.cpp
├── MMASS.cpp
├── MMAXPER.cpp
├── MMMGAME.cpp
├── MNERED.cpp
├── MPILOT.cpp
├── MRECAMAN.cpp
├── MSE07B.cpp
├── MSTICK.cpp
├── MTREE.cpp
├── MTWALK.cpp
├── MULONE.cpp
├── MYSTERY.cpp
├── NCOB.cpp
├── NDCCARD.cpp
├── NETACCEL.cpp
├── NICEQUAD.cpp
├── NK05MNIM.cpp
├── NKABD.cpp
├── NKBM.cpp
├── NKBRACKE.cpp
├── NKBUS.cpp
├── NKCABLE.cpp
├── NKCITY.cpp
├── NKFLOW.cpp
├── NKGUARD.cpp
├── NKINV.cpp
├── NKLEAGUE.cpp
├── NKLETTER.cpp
├── NKLINEUP.cpp
├── NKLUCK.cpp
├── NKMAXSEQ.cpp
├── NKNUMFRE.cpp
├── NKONEARC.cpp
├── NKPALIN.cpp
├── NKPATH.cpp
├── NKPOLICE.cpp
├── NKPOS.cpp
├── NKRACING.cpp
├── NKREZ.cpp
├── NKSEQ.cpp
├── NKSGAME.cpp
├── NKTABLE.cpp
├── NKTEAM.cpp
├── NKTEST.cpp
├── NKTICK.cpp
├── NKTOSS.cpp
├── NKTREE.cpp
├── NOTE.cpp
├── NTPFECT.cpp
├── NTTREE.cpp
├── NUMBER.cpp
├── ONE4EVER.cpp
├── OPTCUT.cpp
├── ORDERSET.cpp
├── PA06ANT.cpp
├── PALINY.cpp
├── PARIGAME.cpp
├── PATULJCI.cpp
├── PBCDEM.cpp
├── PBCGANGS.cpp
├── PBCPOINT.cpp
├── PBCSEQ.cpp
├── PBCWATER.cpp
├── PCIRCLE.cpp
├── PIZZALOC.cpp
├── PNUMBER.cpp
├── POST.cpp
├── POST3.cpp
├── POTATO.cpp
├── PTQMSEQ.cpp
├── PTRANG.cpp
├── PVOI14_1.cpp
├── PVOI14_4.cpp
├── PVOI14_5.cpp
├── PWALK.cpp
├── PWRFAIL.cpp
├── PYRAMID2.cpp
├── QBAGENTS.cpp
├── QBBUILD.cpp
├── QBDIVSEQ.cpp
├── QBHEAP.cpp
├── QBMAX.cpp
├── QBMSEQ.cpp
├── QBMST.cpp
├── QBPAL.cpp
├── QBPOINT.cpp
├── QBRECT.cpp
├── QBROBOT.cpp
├── QBSCHOOL.cpp
├── QBSEQ.cpp
├── QBSQUARE.cpp
├── QBSTR.cpp
├── QBTICKET.cpp
├── QHROAD.cpp
├── QMAX.cpp
├── QMAX2.cpp
├── QMAX3VN.cpp
├── QMAX4.cpp
├── QTLOVE2.cpp
├── QUAD.cpp
├── RABGAME.java
├── REVAMP.cpp
├── ROBOCON.cpp
├── ROTATION.cpp
├── SAFENET2.cpp
├── SEARCH.cpp
├── SEARCH1.cpp
├── SEC.cpp
├── SETNJA.cpp
├── SETNJA.java
├── SHCH.cpp
├── SHHV.cpp
├── SHTH.cpp
├── SPSEQ.cpp
├── STABLE.cpp
├── STMERGE.cpp
├── STNODE.cpp
├── STONE1.cpp
├── SUBSTR.cpp
├── TAYTRUC.cpp
├── TCDFZ.cpp
├── TJALG.cpp
├── TRAFFICN.cpp
├── TREAT.cpp
├── TREEPATH.cpp
├── TRICIR.cpp
├── TTRAVEL.cpp
├── TTRIP.cpp
├── UPGRANET.cpp
├── V11WATER.cpp
├── V8ORG.cpp
├── V8SORT.cpp
├── VCOWFLIX.cpp
├── VDANGER.cpp
├── VECTOR.cpp
├── VMCANDLE.cpp
├── VMMTFIVE.cpp
├── VMST.cpp
├── VMUNCH.cpp
├── VNEMPIRE.cpp
├── VOSRTRI.cpp
├── VOSSEVEN.cpp
├── VOSTRAVL.cpp
├── VOSTRIBO.cpp
├── VRATF.cpp
├── VSTEPS.cpp
├── WEATHER.cpp
├── XAYNHA.cpp
├── XUCXAC.cpp
├── YPKTH.cpp
├── ZABAVA.cpp
└── ZABAVA.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # bat
2 | *.bat
3 |
4 | # cpp
5 |
6 | # Prerequisites
7 | *.d
8 |
9 | # Compiled Object files
10 | *.slo
11 | *.lo
12 | *.o
13 | *.obj
14 |
15 | # Precompiled Headers
16 | *.gch
17 | *.pch
18 |
19 | # Compiled Dynamic libraries
20 | *.so
21 | *.dylib
22 | *.dll
23 |
24 | # Fortran module files
25 | *.mod
26 | *.smod
27 |
28 | # Compiled Static libraries
29 | *.lai
30 | *.la
31 | *.a
32 | *.lib
33 |
34 | # Executables
35 | *.exe
36 | *.out
37 | *.app
38 |
39 | # jekyll
40 | _site/
41 | .sass-cache/
42 | .jekyll-cache/
43 | .jekyll-metadata
44 |
45 | # VS Code
46 | .vscode
47 |
48 | # generated files
49 | files
50 |
51 | # local files
52 | input.txt
53 |
--------------------------------------------------------------------------------
/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Solution for vn.spoj.com
2 |
3 | Serve static files solving problems on vn.spoj.com
4 |
5 | ### Webpage
6 | Visit our webpage at [https://vnspoj.github.io/](https://vnspoj.github.io/)
7 |
8 | ### Implementation
9 | The solution to the specific problem in plain code can be found [here](https://github.com/vnspoj/solution/tree/master/src) under `.cpp`
10 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/ACMNB.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | const int N = 8*1e5+5;
19 | int n, res;
20 | ii a[N];
21 |
22 | bool cmp(ii u, ii v) {
23 | return u.X-u.Y < v.X-v.Y;
24 | }
25 |
26 | int main() {
27 | // freopen("INP.TXT", "r", stdin);
28 | // freopen("OUT.TXT", "w", stdout);
29 |
30 | cin >> n;
31 | n *= 2;
32 | FOR(i,1,n) scanf("%d%d", &a[i].X, &a[i].Y);
33 |
34 | sort(a+1,a+n+1,cmp);
35 |
36 | FOR(i,1,n/2) res += a[i].X;
37 | FOR(i,n/2+1,n) res += a[i].Y;
38 |
39 | printf("%d\n", res);
40 |
41 | return 0;
42 | }
43 |
--------------------------------------------------------------------------------
/src/ADS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | const int N = 2001;
19 | int n, m, cnt, dd[N];
20 | vector a[N];
21 |
22 | void dfs(int u) {
23 | dd[u] = 1;
24 | for (auto v : a[u])
25 | if (!dd[v]) dfs(v);
26 | }
27 |
28 | int main() {
29 | // freopen("INP.TXT", "r", stdin);
30 | // freopen("OUT.TXT", "w", stdout);
31 |
32 | cin >> n >> m;
33 | FOR(i,1,m) {
34 | int u, v;
35 | scanf("%d%d", &u, &v);
36 | a[u].pb(v);
37 | a[v].pb(u);
38 | }
39 |
40 | FOR(u,1,n)
41 | if (!dd[u]) cnt++, dfs(u);
42 |
43 | cout << cnt+m-n << endl;
44 |
45 | return 0;
46 | }
47 |
--------------------------------------------------------------------------------
/src/AMSSEQ.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | const int N = 10001;
19 | int n, k, a[N], F[N], res;
20 |
21 | int main() {
22 | // freopen("INP.TXT", "r", stdin);
23 | // freopen("OUT.TXT", "w", stdout);
24 |
25 | cin >> n >> k;
26 |
27 | FOR(i,1,n) scanf("%d", &a[i]);
28 | FOR(i,1,n) {
29 | F[i] = -1e9;
30 | FOR(j,1,k) {
31 | F[i] = max(F[i], F[i-j] + a[i]);
32 | res = max(res, F[i]);
33 | }
34 | }
35 |
36 | cout << res << endl;
37 |
38 | return 0;
39 | }
40 |
--------------------------------------------------------------------------------
/src/ANT.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | ll n, m;
19 |
20 | int main() {
21 | // freopen("INP.TXT", "r", stdin);
22 | // freopen("OUT.TXT", "w", stdout);
23 |
24 | scanf("%lld%lld", &n,&m);
25 |
26 | ll p = n*m;
27 | while (p > n) p += (p-n-1)/(m-1)-n;
28 |
29 | printf("%lld\n", p);
30 |
31 | return 0;
32 | }
33 |
--------------------------------------------------------------------------------
/src/AUCTION.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | const int N = 1e6;
19 | int n, m, a[N+1], x, ans;
20 | ll sum;
21 |
22 | int main() {
23 | // freopen("INP.TXT", "r", stdin);
24 | // freopen("OUT.TXT", "w", stdout);
25 |
26 | scanf("%d%d", &n,&m);
27 | FOR(i,1,m) scanf("%d", &x), a[x]++;
28 |
29 | FOD(i,N-1,1) a[i] += a[i+1];
30 |
31 | FOR(i,1,N) {
32 | ll tmp = i*(min(a[i],n));
33 | if (tmp > sum) {
34 | sum = tmp;
35 | ans = i;
36 | }
37 | }
38 |
39 | printf("%d %lld\n", ans, sum);
40 |
41 | return 0;
42 | }
43 |
--------------------------------------------------------------------------------
/src/BARIC.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | const int N = 105;
19 | const ll inf = 1e18;
20 | int n, E, a[N];
21 | ll T[3][N][N], F[N][N][2];
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | cin >> n >> E;
28 | FOR(i,1,n) scanf("%d", &a[i]);
29 |
30 | FOR(i,1,n)
31 | FOR(j,i+1,n)
32 | T[1][i][j] = T[1][i][j-1] + 2ll * abs(a[j]-a[i]);
33 |
34 | FOR(i,1,n)
35 | FOR(j,i+1,n)
36 | FOR(k,i+1,j-1)
37 | T[2][i][j] += (ll) abs(2*a[k]-a[i]-a[j]);
38 |
39 | FOR(i,1,n) FOR(j,1,n) FOR(k,0,1) F[i][j][k] = inf;
40 |
41 | F[1][1][1] = 0ll;
42 | FOR(i,2,n) {
43 | F[i][1][1] = 0ll;
44 | FOR(j,1,i-1) {
45 | F[i][1][0] = min(F[i][1][0], F[j][1][1] + T[1][j][i]);
46 | F[i][1][1] += 2ll * abs(a[i]-a[j]);
47 | }
48 | }
49 |
50 | FOR(k,2,n)
51 | FOR(i,k,n)
52 | FOR(j,1,i-1) {
53 | F[i][k][0] = min(F[i][k][0], F[j][k][1] + T[1][j][i]);
54 | F[i][k][1] = min(F[i][k][1], F[j][k-1][1] + T[2][j][i]);
55 | }
56 |
57 | FOR(i,1,n)
58 | FOR(j,0,1)
59 | if (F[n][i][j] <= E) {
60 | printf("%d %lld\n", i, F[n][i][j]);
61 | return 0;
62 | }
63 |
64 | return 0;
65 | }
66 |
--------------------------------------------------------------------------------
/src/BARICAVN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | struct data {
19 | int i, j, w, id;
20 | bool operator < (const data &o) const {
21 | if (i < o.i) return true;
22 | if (i == o.i && j < o.j) return true;
23 | return false;
24 | }
25 | };
26 |
27 | const int N = 3e5+5;
28 | int n, k, F[N], pos[N], maxi[N], maxj[N];
29 | data a[N];
30 |
31 | void upd(int i) {
32 | maxi[a[i].i] = max(maxi[a[i].i], F[i]);
33 | maxj[a[i].j] = max(maxj[a[i].j], F[i]);
34 | }
35 |
36 | int main() {
37 | // freopen("INP.TXT", "r", stdin);
38 | // freopen("OUT.TXT", "w", stdout);
39 |
40 | cin >> n >> k;
41 | FOR(i,1,n) {
42 | scanf("%d%d%d", &a[i].i, &a[i].j, &a[i].w);
43 | a[i].id = i;
44 | }
45 | sort(a+1,a+n+1);
46 | FOR(i,1,n) pos[a[i].id] = i;
47 |
48 | F[pos[1]] = a[pos[1]].w;
49 | upd(pos[1]);
50 |
51 | FOR(i, pos[1]+1, pos[n]) {
52 | if (maxi[a[i].i] >= k)
53 | F[i] = max(F[i], maxi[a[i].i] - k + a[i].w);
54 | if (maxj[a[i].j] >= k)
55 | F[i] = max(F[i], maxj[a[i].j] - k + a[i].w);
56 | upd(i);
57 | }
58 |
59 | printf("%d\n", F[pos[n]]);
60 |
61 | return 0;
62 | }
63 |
--------------------------------------------------------------------------------
/src/BASEH.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | int k, h;
19 | string s;
20 |
21 | int main() {
22 | // freopen("INP.TXT", "r", stdin);
23 | // freopen("OUT.TXT", "w", stdout);
24 |
25 | scanf("%d%d", &k,&h);
26 | while (k > 0) {
27 | s = char(k%2+'0') + s;
28 | k /= 2;
29 | }
30 | cout << s;
31 |
32 | return 0;
33 | }
34 |
--------------------------------------------------------------------------------
/src/BCDIV.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | int T, n, k;
19 | ll F[50][50];
20 |
21 | int main() {
22 | // freopen("INP.TXT", "r", stdin);
23 | // freopen("OUT.TXT", "w", stdout);
24 |
25 | F[0][0] = 1ll;
26 | FOR(i,1,25)
27 | FOR(j,1,25)
28 | F[i][j] = F[i-1][j-1] + j*F[i-1][j];
29 |
30 | scanf("%d", &T);
31 | while (T--) {
32 | scanf("%d%d", &n,&k);
33 | printf("%lld\n", F[n][k]);
34 | }
35 |
36 | return 0;
37 | }
38 |
--------------------------------------------------------------------------------
/src/BEADSNB.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1e5+5;
22 | int n, a[N], s[N], F0[N], F1[N], k, res;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d", &n);
29 | FOR(i,1,n) scanf("%d", &a[i]);
30 |
31 | k = 1;
32 | s[1] = a[n];
33 | F0[n] = 1;
34 | FOD(i,n-1,1) {
35 | int j = k;
36 | while (j > 0 && a[i] >= s[j]) j--;
37 | if (j == k) s[++k] = 0;
38 | s[j+1] = max(s[j+1], a[i]);
39 | F0[i] = j+1;
40 | }
41 |
42 | k = 1;
43 | fillchar(s,0);
44 | s[1] = a[n];
45 | F1[n] = 1;
46 | FOD(i,n-1,1) {
47 | int j = k;
48 | while (j > 0 && a[i] <= s[j]) j--;
49 | if (j == k) s[++k] = 1e9+7;
50 | s[j+1] = min(s[j+1], a[i]);
51 | F1[i] = j+1;
52 | }
53 |
54 | FOR(i,1,n) res = max(res, F0[i]+F1[i]-1);
55 | printf("%d\n", res);
56 |
57 | return 0;
58 | }
59 |
--------------------------------------------------------------------------------
/src/BINARY2.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1e6+6, mod = 1e9;
22 | int n, k;
23 | ll F[N];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d %d", &n, &k);
30 | F[0] = F[1] = 1ll % mod;
31 | FOR(i,2,k) F[i] = 2*F[i-1] % mod;
32 | FOR(i,k+1,n)
33 | F[i] = (2*F[i-1] % mod - F[i-k-1] + mod) % mod;
34 | printf("%lld\n", 2*F[n] % mod);
35 |
36 | return 0;
37 | }
38 |
--------------------------------------------------------------------------------
/src/BLOPER.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n, s, a[505], sum;
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | scanf("%d%d", &n,&s);
28 | sum = n*(n+1)/2;
29 | FOD(i,n,1) {
30 | if (sum-2*i >= s) {
31 | a[i] = 1;
32 | sum -= 2*i;
33 | }
34 | }
35 | if (sum == s) {
36 | if (a[1]) {
37 | FOR(i,4,n) {
38 | if (a[1] == 0) break;
39 | if (a[i])
40 | FOR(j,2,i/2)
41 | if (a[j] == 0 && a[i+1-j] == 0) {
42 | a[j] = a[i+1-j] = 1;
43 | a[1] = a[i] = 0;
44 | break;
45 | }
46 | }
47 | if (a[1]) {
48 | puts("Impossible");
49 | return 0;
50 | }
51 | }
52 | printf("1");
53 | FOR(i,2,n)
54 | printf("%c%d", (a[i] == 1) ? '-' : '+', i);
55 | } else puts("Impossible");
56 |
57 | return 0;
58 | }
59 |
--------------------------------------------------------------------------------
/src/BONES.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 100;
22 | int a, b, c, cnt[N];
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d%d%d", &a,&b,&c);
29 | FOR(i,1,a) FOR(j,1,b) FOR(k,1,c) cnt[i+j+k]++;
30 | int ans = 0;
31 | FOR(i,1,a+b+c) if (cnt[ans] < cnt[i]) ans = i;
32 | printf("%d\n", ans);
33 |
34 | return 0;
35 | }
36 |
--------------------------------------------------------------------------------
/src/BONUS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define EL printf("\n")
13 | #define sz(A) (int) A.size()
14 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
15 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
16 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
17 |
18 | const int N = 1001;
19 | int n, k, F[N][N], ans;
20 |
21 | int main()
22 | {
23 | //freopen("INP.INP", "r", stdin);
24 | //freopen("OUT.OUT", "w", stdout);
25 |
26 | scanf("%d%d", &n,&k);
27 | FOR(i,1,n)
28 | FOR(j,1,n) {
29 | scanf("%d", &F[i][j]);
30 | F[i][j] += F[i-1][j] + F[i][j-1] - F[i-1][j-1];
31 | }
32 |
33 | FOR(i,k,n)
34 | FOR(j,k,n) {
35 | int S = F[i][j] - F[i-k][j] - F[i][j-k] + F[i-k][j-k];
36 | ans = max(ans, S);
37 | }
38 |
39 | printf("%d\n", ans);
40 |
41 | return 0;
42 | }
43 |
--------------------------------------------------------------------------------
/src/BWPOINTS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 200005;
22 | int n, m, ans, Now;
23 | ii a[N];
24 |
25 | bool cmp(ii u, ii v) {
26 | return u.X < v.X;
27 | }
28 |
29 | int main() {
30 | // freopen("INP.TXT", "r", stdin);
31 | // freopen("OUT.TXT", "w", stdout);
32 |
33 | scanf("%d", &n);
34 | FOR(i,1,n) scanf("%d", &a[++m].X), a[i].Y = 0;
35 | FOR(i,1,n) scanf("%d", &a[++m].X), a[i].Y = 1;
36 | sort(a+1, a+m+1, cmp);
37 | Now = a[1].Y;
38 | FOR(i,2,m)
39 | if (a[i].Y + Now == 1) ans++, Now = -1;
40 | else Now = a[i].Y;
41 | printf("%d\n", ans);
42 |
43 | return 0;
44 | }
45 |
--------------------------------------------------------------------------------
/src/C11BC1.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 100001, M = 790972;
22 | int n, k;
23 | ll F[2][51], ans;
24 | ii a[N];
25 |
26 | bool cmp(ii u, ii v) {
27 | return u.Y < v.Y;
28 | }
29 |
30 | int get(int L, int R) {
31 | F[1][1] = a[L].X;
32 | FOR(i,2,k) F[1][i] = 0;
33 | FOR(i,L+1,R) {
34 | FOR(j,1,k) F[0][j] = F[1][j];
35 | F[1][1] = F[0][1] + a[i].X;
36 | FOR(j,2,k)
37 | F[1][j] = (F[0][j] + F[0][j-1] * a[i].X % M) % M;
38 | }
39 |
40 | return F[1][k];
41 | }
42 |
43 |
44 | int main() {
45 | // freopen("INP.TXT", "r", stdin);
46 | // freopen("OUT.TXT", "w", stdout);
47 |
48 | scanf("%d%d", &n,&k);
49 | FOR(i,1,n) scanf("%d%d", &a[i].X, &a[i].Y);
50 | sort(a+1,a+n+1,cmp);
51 |
52 | ans = get(1,n);
53 |
54 | int L = 1, R = 1;
55 | ll S = 0ll;
56 | while (L <= n) {
57 | while (R < n && a[R+1].Y == a[L].Y) ++R;
58 | S = (S + get(L,R)) % M;
59 | L = ++R;
60 | }
61 |
62 | ans = (ans - S + 2 * M) % M;
63 |
64 | printf("%d\n", ans);
65 |
66 | return 0;
67 | }
68 |
--------------------------------------------------------------------------------
/src/C11BC2.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 10010;
22 | int n, m, pa[N], Rank[N];
23 |
24 | int FindSet(int u) {
25 | if (u == pa[u]) return u;
26 | return pa[u] = FindSet(pa[u]);
27 | }
28 |
29 | void Union(int u, int v) {
30 | u = FindSet(u);
31 | v = FindSet(v);
32 | if (u == v) return ;
33 | pa[v] = u;
34 | if (Rank[v] > Rank[u]) swap(Rank[v], Rank[u]);
35 | if (Rank[v] == Rank[u]) Rank[u]++;
36 | }
37 |
38 |
39 | int main() {
40 | // freopen("INP.TXT", "r", stdin);
41 | // freopen("OUT.TXT", "w", stdout);
42 |
43 | scanf("%d%d\n", &n,&m);
44 | FOR(i,1,n) pa[i] = i;
45 | FOR(v,2,n) {
46 | int u, k;
47 | scanf("%d%d\n", &u,&k);
48 | if (k == 1) Union(u,v);
49 | }
50 | FOR(i,1,m) {
51 | int u, v;
52 | scanf("%d%d\n", &u,&v);
53 | printf("%s\n", FindSet(u) == FindSet(v) ? "NO" : "YES");
54 | }
55 |
56 | return 0;
57 | }
58 |
--------------------------------------------------------------------------------
/src/C11BEAU.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int t, ca, cb, ma, mb;
22 |
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d", &t);
29 | while (t--) {
30 | scanf("%d%d%d%d", &ca, &cb, &ma, &mb);
31 | if (ma == 0) ca = 0;
32 | if (mb == 0) cb = 0;
33 | if (ca > cb) swap(ca, cb), swap(ma, mb);
34 | printf("%lld\n", ca + min((ll)cb, (ll)mb * (ca+1)));
35 | }
36 |
37 | return 0;
38 | }
39 |
--------------------------------------------------------------------------------
/src/C11CAVE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 500005;
22 | int m, n, cnt, F[N];
23 |
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d%d", &m,&n);
30 | FOR(i,1,m) {
31 | int h, l, r;
32 | scanf("%d", &h);
33 | if (i%2) l = 1, r = h;
34 | else l = n-h+1, r = n;
35 | F[l]++;
36 | F[r+1]--;
37 | }
38 | FOR(i,1,n) {
39 | F[i] += F[i-1];
40 | if (F[i] < m) m = F[i], cnt = 1;
41 | else if (F[i] == m) cnt++;
42 | }
43 | printf("%d %d\n", m, cnt);
44 |
45 | return 0;
46 | }
47 |
--------------------------------------------------------------------------------
/src/C11ID.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1e5+5, mod = 1e9+7;
22 | ll n, a[N], ans = 1ll;
23 |
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d", &n);
30 | FOR(i,1,n) scanf("%lld", &a[i]);
31 | sort(a+1, a+n+1);
32 | FOR(i,1,n) ans = ans * (a[i]-i+1) % mod;
33 | printf("%lld\n", ans);
34 |
35 | return 0;
36 | }
37 |
--------------------------------------------------------------------------------
/src/C11KM.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1010, oo = N*300;
22 | int n, a[N], F[N][N], ans = oo;
23 |
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d", &n);
30 | FOR(i,1,n) scanf("%d", &a[i]);
31 | FOR(i,0,n+1) FOR(j,0,n+1) F[i][j] = oo;
32 | F[0][0] = 0;
33 | FOR(i,1,n)
34 | FOR(j,0,n)
35 | if (a[i] > 100 && j > 0)
36 | F[i][j] = min(F[i-1][j-1] + a[i], F[i-1][j+1]);
37 | else
38 | F[i][j] = min(F[i-1][j] + a[i], F[i-1][j+1]);
39 | FOR(i,0,n) ans = min(ans, F[n][i]);
40 | printf("%d\n", ans);
41 |
42 | return 0;
43 | }
44 |
--------------------------------------------------------------------------------
/src/C11PAIRS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n, x;
22 | ll ans;
23 | stack st;
24 | map cnt;
25 |
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 | scanf("%d\n", &n);
32 | while (n--) {
33 | scanf("%d\n", &x);
34 | while (!st.empty() && x > st.top()) {
35 | cnt[st.top()]--;
36 | st.pop();
37 | ans++;
38 | }
39 | if (!st.empty())
40 | ans += x == st.top() ? cnt[x] + (st.size() > cnt[x]) : 1;
41 | st.push(x);
42 | cnt[x]++;
43 | }
44 | printf("%lld\n", ans);
45 |
46 | return 0;
47 | }
48 |
--------------------------------------------------------------------------------
/src/C11STR2.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | string a, b, s;
22 |
23 | vector Z_Function(string s) {
24 | vector z(s.size(),0);
25 | for(int i=1,l=0,r=0; i r) l = i, r = i+z[i]-1;
29 | }
30 | return z;
31 | }
32 |
33 |
34 | int main() {
35 | // freopen("INP.TXT", "r", stdin);
36 | // freopen("OUT.TXT", "w", stdout);
37 |
38 | cin >> a >> b;
39 | s = b + '#' + a;
40 | vector z = Z_Function(s);
41 | int ans = 0;
42 | FOR(i,b.size()+1,s.size()-1) {
43 | if (ans < z[i] && i+z[i] == s.size()) ans = z[i];
44 | }
45 | FOR(i,0,a.size()-1) printf("%c", a[i]);
46 | FOR(i,ans,b.size()-1) printf("%c", b[i]);
47 | EL;
48 |
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/C11SUM.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 2000000, mod = 1000000007;
22 | int n;
23 | ll f[N], res;
24 | char s[N];
25 |
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 | scanf("%s", &s);
32 | n = strlen(s);
33 | for (int i=1; i<=n; i++)
34 | f[i] = (f[i-1]*10 + (s[i-1]-'0')*i) % mod;
35 |
36 | for (int i=1; i<=n; i++)
37 | res = (res + f[i]) % mod;
38 |
39 | printf("%lld", res);
40 |
41 | return 0;
42 | }
43 |
--------------------------------------------------------------------------------
/src/C11TRCNT.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 222;
22 | int n, F[N], ans, id;
23 | ii a[N];
24 |
25 | bool check(ii A, ii B, ii C) {
26 | int xab = B.X - A.X, yab = B.Y - A.Y;
27 | int xac = C.X - A.X, yac = C.Y - A.Y;
28 | return (ll)xab * yac != (ll)xac * yab;
29 | }
30 |
31 |
32 | int main() {
33 | // freopen("INP.TXT", "r", stdin);
34 | // freopen("OUT.TXT", "w", stdout);
35 |
36 | scanf("%d", &n);
37 | FOR(i,1,n) scanf("%d%d", &a[i].X, &a[i].Y);
38 | FOR(i,1,n) FOR(j,i+1,n) FOR(k,j+1,n)
39 | if (check(a[i],a[j],a[k])) {
40 | ans++;
41 | F[i]++;
42 | F[j]++;
43 | F[k]++;
44 | }
45 | id = 1;
46 | FOR(i,2,n) if (F[i] < F[id]) id = i;
47 | printf("%d %d\n", ans, id);
48 |
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/CAR.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | struct data {
22 | int val, time, id;
23 | };
24 |
25 | const int N = 10010;
26 | int n;
27 | data a[N];
28 | ll ans, sum;
29 |
30 | bool cmp(data u, data v) {
31 | return (ll)u.val * v.time > (ll)u.time * v.val;
32 | }
33 |
34 |
35 | int main() {
36 | // freopen("INP.TXT", "r", stdin);
37 | // freopen("OUT.TXT", "w", stdout);
38 |
39 | scanf("%d", &n);
40 | FOR(i,1,n) scanf("%d", &a[i].val), sum += (ll)a[i].val;
41 | FOR(i,1,n) scanf("%d", &a[i].time), a[i].id = i;
42 | sort(a+1, a+n+1, cmp);
43 | FOR(i,1,n) {
44 | ans += sum * a[i].time;
45 | sum -= a[i].val;
46 | }
47 | printf("%lld\n", ans);
48 | FOR(i,1,n) printf("%d ", a[i].id);
49 |
50 | return 0;
51 | }
52 |
--------------------------------------------------------------------------------
/src/CATALAN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n, a[35];
22 | ll x, F[35][35];
23 |
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d", &n);
30 | n = 2*n+1;
31 |
32 | F[0][0] = 1ll;
33 | F[1][1] = 1ll;
34 | FOR(j,2,n-1) {
35 | F[0][j] = F[1][j-1];
36 | FOR(i,1,n+1) F[i][j] = F[i-1][j-1] + F[i+1][j-1];
37 | }
38 |
39 | FOR(i,1,n) scanf("%d", &a[i]);
40 | x = 1ll;
41 | FOR(i,2,n) {
42 | if (a[i] < a[i-1] || a[i-1] == 0) continue;
43 | x += F[a[i-1]-1][n-i];
44 | }
45 | printf("%lld\n", x);
46 |
47 | scanf("%lld\n", &x);
48 | x--;
49 | a[1] = 0;
50 | FOR(i,2,n) {
51 | if (a[i-1] == 0) a[i] = 1;
52 | else {
53 | if (x >= F[a[i-1]-1][n-i]) {
54 | x -= F[a[i-1]-1][n-i];
55 | a[i] = a[i-1]+1;
56 | } else a[i] = a[i-1]-1;
57 | }
58 | }
59 | FOR(i,1,n) printf("%d ", a[i]);
60 |
61 | return 0;
62 | }
63 |
--------------------------------------------------------------------------------
/src/CBUYING.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | typedef pair pll;
22 |
23 | const int N = 100005;
24 | int n;
25 | ll b, ans;
26 | pll a[N];
27 |
28 | bool cmp(pll u, pll v) {
29 | return u.X < v.X;
30 | }
31 |
32 |
33 | int main() {
34 | // freopen("INP.TXT", "r", stdin);
35 | // freopen("OUT.TXT", "w", stdout);
36 |
37 | scanf("%d%lld\n", &n, &b);
38 | FOR(i,1,n) scanf("%lld%lld", &a[i].X, &a[i].Y);
39 | sort(a+1, a+n+1, cmp);
40 | FOR(i,1,n) {
41 | ll sl = b / a[i].X;
42 | if (sl < a[i].Y) {
43 | ans += sl;
44 | break;
45 | } else {
46 | ans += a[i].Y;
47 | b -= a[i].X * a[i].Y;
48 | }
49 | }
50 | printf("%lld\n", ans);
51 |
52 | return 0;
53 | }
54 |
--------------------------------------------------------------------------------
/src/CHAIN2.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | typedef struct Trie {
22 | int f, g;
23 | Trie * c[30];
24 | } * trie;
25 |
26 | trie New() {
27 | trie a = new Trie();
28 | a->f = a->g = 0;
29 | return a;
30 | }
31 |
32 | trie root = New();
33 |
34 | int dfs(trie a) {
35 | a->g = a->f;
36 | FOR(i,0,25)
37 | if (a->c[i] != nullptr) {
38 | dfs(a->c[i]);
39 | a->g = max(a->g, a->f + a->c[i]->g);
40 | }
41 | }
42 |
43 |
44 | int main() {
45 | // freopen("INP.TXT", "r", stdin);
46 | // freopen("OUT.TXT", "w", stdout);
47 |
48 | int n;
49 | scanf("%d\n", &n);
50 | while (n--) {
51 | string s;
52 | getline(cin, s);
53 | trie a = root;
54 | FOR(i,0,s.size()-1) {
55 | if (a->c[s[i]-'a'] == nullptr) a->c[s[i]-'a'] = New();
56 | a = a->c[s[i]-'a'];
57 | }
58 | a->f = 1;
59 | }
60 |
61 | dfs(root);
62 |
63 | cout << root->g;
64 |
65 | return 0;
66 | }
67 |
--------------------------------------------------------------------------------
/src/CHEAT.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1e5+5;
22 | int n, x, a[N];
23 | stack st;
24 |
25 | int solve() {
26 | FOR(i,1,n) {
27 | if (a[i] > a[i-1]) {
28 | for (x = x + 1; x < a[i]; x++) st.push(x);
29 | } else {
30 | if (! st.empty() && st.top() == a[i]) st.pop();
31 | else
32 | return puts("YES");
33 | }
34 | }
35 | return puts("NO");
36 | }
37 |
38 |
39 | int main() {
40 | // freopen("INP.TXT", "r", stdin);
41 | // freopen("OUT.TXT", "w", stdout);
42 |
43 | cin >> n;
44 | FOR(i,1,n) scanf("%d", &a[i]);
45 | solve();
46 |
47 | return 0;
48 | }
49 |
--------------------------------------------------------------------------------
/src/CHEER.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | struct edge {
22 | int u, v, c;
23 | bool operator < (const edge &o) const {
24 | return c < o.c;
25 | }
26 | };
27 |
28 | const int N = 1e5+5;
29 | int n, m, c[N], pa[N], sz[N];
30 | edge e[N];
31 | ll ans = 1001ll;
32 |
33 | int FindSet(int u) {
34 | if (u == pa[u]) return u;
35 | return pa[u] = FindSet(pa[u]);
36 | }
37 |
38 |
39 | int main() {
40 | // freopen("INP.TXT", "r", stdin);
41 | // freopen("OUT.TXT", "w", stdout);
42 |
43 | scanf("%d%d", &n,&m);
44 | FOR(i,1,n) scanf("%d", &c[i]);
45 | FOR(i,1,m) {
46 | int u, v, w;
47 | scanf("%d%d%d", &u,&v,&w);
48 | e[i] = {u, v, w * 2 + c[u] + c[v]};
49 | }
50 | sort(e+1, e+m+1);
51 |
52 | FOR(i,1,n) pa[i] = i, sz[i] = 1, ans = min(ans, (ll) c[i]);
53 | FOR(i,1,m) {
54 | int u = FindSet(e[i].u), v = FindSet(e[i].v);
55 | if (u == v) continue;
56 | pa[v] = u;
57 | sz[u] += sz[v];
58 | ans += (ll) e[i].c;
59 | }
60 |
61 | printf("%lld\n", ans);
62 |
63 | return 0;
64 | }
65 |
--------------------------------------------------------------------------------
/src/CHNTOWER.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | ll n, m, f[100][100];
22 |
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | for (int i=1; i<=64; i++)
29 | for (int j=3; j<=64; j++)
30 | if (j == 3) {
31 | f[i][j] = 1;
32 | for (int k=1; k<=i; k++) f[i][j] *= 2;
33 | f[i][j]--;
34 | } else if (i == j)
35 | f[i][j] = 2*i+1;
36 | else if (i < j)
37 | f[i][j] = 2*i-1;
38 | else {
39 | f[i][j] = LONG_LONG_MAX;
40 | for (int k=1; k
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int maxn = 50000; // can(2^31-1)
23 | int n, res = 1;
24 | bool a[maxn];
25 | int z, p[maxn], k[maxn], Max;
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 | scanf("%d",&n);
32 | Max = sqrt(n);
33 | int i = 2, j;
34 | a[1] = true;
35 | a[0] = true;
36 | while (i <= Max) {
37 | if (n % i == 0) {
38 | z++;
39 | p[z] = i;
40 | }
41 | j = i + i;
42 | while (j <= Max) {
43 | a[j] = true;
44 | j += i;
45 | }
46 | i++;
47 | while (a[i]) i++;
48 | }
49 |
50 | int m = n;
51 | for (int i=1; i<=z; i++) {
52 | while (m % p[i] == 0) {
53 | k[i]++;
54 | m /= p[i];
55 | }
56 | }
57 | if (m > 1) {
58 | z++;
59 | p[z] = m;
60 | k[z] = 1;
61 | }
62 |
63 | for (int i=1; i<=z; i++) {
64 | long tmp = 1;
65 | for (int j=1; j
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n, res;
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | while (scanf("%d", &n) != EOF) {
28 | ll mx = sqrt(n*2);
29 | res = 0;
30 | FOR(i,2,mx)
31 | if (n*2%i == 0 && (i+n*2/i-1)%2 == 0) res++;
32 | cout << res << endl;
33 | }
34 |
35 | return 0;
36 | }
37 |
--------------------------------------------------------------------------------
/src/COUNTPL.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 300, inf = 1e9;
22 | int n, F[N], f[N][N];
23 | char a[N];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%s\n", a+1);
30 | n = strlen(a+1);
31 |
32 | FOD(i,n,1)
33 | FOR(j,i,n)
34 | if (i == j) f[i][j] = 1;
35 | else {
36 | if (i == j-1) f[i][j] = a[i] == a[j];
37 | else {
38 | if (a[i] == a[j]) f[i][j] = f[i+1][j-1];
39 | }
40 | }
41 |
42 | F[1] = 1;
43 | FOR(i,2,n) {
44 | F[i] = inf;
45 | FOR(j,1,i)
46 | if (f[j][i])
47 | F[i] = min(F[i], F[j-1] + 1);
48 | }
49 |
50 | printf("%d\n", F[n]);
51 |
52 | return 0;
53 | }
54 |
--------------------------------------------------------------------------------
/src/CREC01.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1005;
22 | int n, m, L[N], h[N];
23 | ll F[N], ans;
24 | char a[N];
25 |
26 | int main() {
27 | // freopen("INP.TXT", "r", stdin);
28 | // freopen("OUT.TXT", "w", stdout);
29 |
30 | scanf("%d%d\n", &n,&m);
31 | FOR(i,1,n) {
32 | scanf("%s\n", a+1);
33 | FOR(j,1,m) h[j] = a[j] == '1' ? h[j] + 1 : 0;
34 |
35 | stack st;
36 | FOR(j,1,m) {
37 | while (! st.empty() && h[j] <= h[st.top()]) st.pop();
38 | L[j] = st.empty() ? 1 : st.top() + 1;
39 | st.push(j);
40 | }
41 |
42 | FOR(j,1,m) {
43 | int k = L[j] - 1;
44 | F[j] = (ll) h[j] * (j - k) + F[k];
45 | ans += F[j];
46 | }
47 | }
48 |
49 | cout << ans;
50 |
51 | return 0;
52 | }
53 |
--------------------------------------------------------------------------------
/src/CT.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int t, x, y;
22 | ll res;
23 |
24 | ll getA(int l, int r) {
25 | l = max(l,0);
26 | r = min(r,x);
27 | return (ll) r-l+1;
28 | }
29 |
30 | ll getB(int l, int r) {
31 | l = max(l,0);
32 | r = min(r,y);
33 | return (ll) r-l+1;
34 | }
35 |
36 | void solve(int i, int j) {
37 | res += getA(i-j,i-j+y)*getB(i+j-x,i+j)-1;
38 | res += getA(j+i-y,j+i)*getB(j-i,j-i+x)-1;
39 | }
40 |
41 | int main() {
42 | // freopen("INP.TXT", "r", stdin);
43 | // freopen("OUT.TXT", "w", stdout);
44 |
45 | scanf("%d\n", &t);
46 | while(t--) {
47 | scanf("%d%d\n", &x,&y);
48 | res = 0ll;
49 | FOR(i,0,x) FOR(j,0,y) solve(i,j);
50 | printf("%lld\n", res/2);
51 | }
52 |
53 | return 0;
54 | }
55 |
--------------------------------------------------------------------------------
/src/CTNBULLS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int base = 2111992;
22 | int n,k,f[100100];
23 |
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d%d",&n,&k);
30 | for (int i=1; i0;i--) {
12 | tmp = tmp.multiply(BigInteger.valueOf(i));
13 | ans = ans.add(tmp);
14 | }
15 | System.out.println(ans);
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/src/DHEXP.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n,k;
22 | ll ans, a[1000006];
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d%d", &n,&k);
29 | scanf("%lld", &ans);
30 | n--;
31 | FOR(i,1,n) scanf("%lld", &a[i]);
32 | sort(a+1,a+n+1);
33 | FOR(i,1,n)
34 | if (i <= n-k) ans -= a[i];
35 | else ans += a[i];
36 | printf("%lld\n", ans);
37 |
38 | return 0;
39 | }
40 |
--------------------------------------------------------------------------------
/src/DHLOCK.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 305;
23 | const ll inf = 1e18;
24 | int n, k, a[N], b[N];
25 |
26 | #define pos(x) (x - shift_left + n - 1) % n + 1
27 | #define dis(x,y) x <= y ? y - x : k - x + y + 1
28 | #define add(x,d) (x + d) % (k + 1)
29 |
30 |
31 |
32 | int main() {
33 | // freopen("INP.TXT", "r", stdin);
34 | // freopen("OUT.TXT", "w", stdout);
35 |
36 | cin >> n >> k;
37 | FOR(i,1,n) scanf("%d", &a[i]);
38 | FOR(i,1,n) scanf("%d", &b[i]);
39 |
40 | ll ans = 0ll;
41 | FOR(i,1,n) ans += dis(a[i], b[i]);
42 |
43 | FOR(shift_left,0,n-1) {
44 | FOR(p,1,n) {
45 | int del = dis(a[pos(p)], b[p]);
46 | ll sum = (ll) shift_left + del;
47 | FOR(i,1,n)
48 | sum += (ll) dis(add(a[pos(i)], del), b[i]);
49 | ans = min(ans, sum);
50 | }
51 | }
52 |
53 | printf("%lld\n", ans);
54 |
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/src/DHRECT.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 3e5+5;
23 | int T, n, a[N];
24 |
25 |
26 | int main() {
27 | // freopen("INP.TXT", "r", stdin);
28 | // freopen("OUT.TXT", "w", stdout);
29 |
30 | scanf("%d", &T);
31 | while (T--) {
32 | scanf("%d", &n);
33 | FOR(i,1,n) scanf("%d", &a[i]);
34 | sort(a+1,a+n+1);
35 | int x = -1;
36 | ll ans = -1;
37 | map m;
38 | FOD(i,n,1) {
39 | m[a[i]]++;
40 | if (m[a[i]] == 2) {
41 | if (x == -1) x = a[i];
42 | else {
43 | ans = (ll) x * a[i];
44 | break;
45 | }
46 | } else if (m[a[i]] == 4) {
47 | ans = (ll) a[i] * a[i];
48 | break;
49 | }
50 | }
51 | printf("%lld\n", ans);
52 | }
53 |
54 | return 0;
55 | }
56 |
--------------------------------------------------------------------------------
/src/DTDOI.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 1000000;
23 | const int inf = 1e9;
24 | int n, s, a[150], F[N+1], ans;
25 |
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 | scanf("%d%d", &n, &s);
32 | FOR(i,1,n) scanf("%d", &a[i]);
33 | sort(a+1, a+n+1);
34 | FOR(i,1,N/n) {
35 | F[i] = inf;
36 | FOR(j,1,n)
37 | if (a[j] <= i)
38 | F[i] = min(F[i], 1 + F[i-a[j]]);
39 | else break;
40 | }
41 |
42 | if (s <= N/n) {
43 | printf("%d\n", F[s]);
44 | return 0;
45 | }
46 |
47 | ans = inf;
48 |
49 | int time = 0;
50 | for (int cnt = s / a[n]; cnt > 0; cnt--) {
51 | int t = s - a[n] * cnt;
52 | if (t > N/n || time > N) break;
53 | ans = min(ans, cnt + F[t]);
54 | time++;
55 | }
56 |
57 | printf("%d\n", ans);
58 |
59 | return 0;
60 | }
61 |
--------------------------------------------------------------------------------
/src/DTGAME.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 3000;
23 | int n;
24 | int a[N], f[N][N], s[N][N];
25 |
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 | scanf("%d", &n);
32 | for (int i=1; i<=n; i++) {
33 | scanf("%d", &a[i]);
34 | s[i][i] = i;
35 | a[i] += a[i-1];
36 | }
37 |
38 | for (int j=2; j<=n; j++)
39 | for (int i=j-1; i>0; i--) {
40 | for (int k=s[i][j-1]; k<=s[i+1][j]; k++) {
41 | ll ans = min(f[i][k]+a[k]-a[i-1], f[k+1][j]+a[j]-a[k]);
42 | if (f[i][j] < ans) {
43 | f[i][j] = ans;
44 | s[i][j] = k;
45 | }
46 | }
47 | }
48 |
49 | printf("%d", f[1][n]);
50 |
51 |
52 | return 0;
53 | }
54 |
--------------------------------------------------------------------------------
/src/EGG.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 1009, z = 1000;
23 | int t, n, m, f[N][N], llog[N];
24 |
25 | int Log(int x) {
26 | int cnt = 0;
27 | while (x > 0) {
28 | cnt++;
29 | x /= 2;
30 | }
31 | return cnt;
32 | }
33 |
34 | void init() {
35 | for (int i=1; i<=z; i++) llog[i] = Log(i);
36 | for (int i=1; i<=z; i++)
37 | for (int j=1; j<=z; j++) f[i][j] = z;
38 | for (int i=1; i<=z; i++) f[1][i] = i;
39 | for (int i=2; i<=z; i++) {
40 | for (int j=1; j<=z; j++) {
41 | if (i > llog[j]) f[i][j] = f[i-1][j];
42 | else
43 | for (int k=2; k<=j; k++)
44 | f[i][j] = min(f[i][j], max(f[i-1][k-1], f[i][j-k])+1);
45 | }
46 | }
47 | }
48 |
49 |
50 | int main() {
51 | // freopen("INP.TXT", "r", stdin);
52 | // freopen("OUT.TXT", "w", stdout);
53 |
54 | init();
55 | scanf("%d", &t);
56 | while (t--) {
57 | scanf("%d%d", &n, &m);
58 | printf("%d\n", f[n][m]);
59 | }
60 |
61 | return 0;
62 | }
63 |
--------------------------------------------------------------------------------
/src/FINDNUM.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const ll oo = 1000000000000000001ll;
23 | ll p[20] = {0,2,3,5,7,11,13,17,19,23,29};
24 | ll n, res = oo;
25 |
26 | void solve(int i, ll ans, int cnt) {
27 | if (cnt > n) return ;
28 | if (cnt == n) res = min(res, ans);
29 | for (int j=1;; j++) {
30 | if (ans*p[i] > res) break;
31 | ans *= p[i];
32 | if (ans < 0) break;
33 | solve(i+1, ans, cnt*(j+1));
34 | }
35 | }
36 |
37 |
38 | int main() {
39 | // freopen("INP.TXT", "r", stdin);
40 | // freopen("OUT.TXT", "w", stdout);
41 |
42 | scanf("%d", &n);
43 | solve(1,1,1);
44 | printf("%lld", res);
45 |
46 | return 0;
47 | }
48 |
--------------------------------------------------------------------------------
/src/FWATER.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 305;
23 |
24 | int n, w[N], d[N], c[N][N], dd[N];
25 |
26 | struct data {
27 | int u, d;
28 | bool operator < (const data &o) const {
29 | return d > o.d;
30 | }
31 | };
32 |
33 | priority_queue st;
34 |
35 | void read() {
36 | cin >> n;
37 | FOR(i,1,n) scanf("%d", &w[i]);
38 | FOR(u,1,n) FOR(v,1,n) scanf("%d", &c[u][v]);
39 | }
40 |
41 | void solve() {
42 | FOR(u,1,n) {
43 | d[u] = w[u];
44 | st.push({u, d[u]});
45 | }
46 |
47 | int res = 0;
48 | while (!st.empty()) {
49 | data t = st.top();
50 | st.pop();
51 | int u = t.u;
52 | if (d[u] < t.d) continue;
53 | res += d[u];
54 | dd[u] = 1;
55 | FOR(v,1,n) {
56 | if (u != v && !dd[v] && c[u][v] < d[v]) {
57 | d[v] = c[u][v];
58 | st.push({v, d[v]});
59 | }
60 | }
61 | }
62 |
63 | cout << res << endl;
64 | }
65 |
66 | int main() {
67 | // freopen("INP.TXT", "r", stdin);
68 | // freopen("OUT.TXT", "w", stdout);
69 |
70 | read();
71 | solve();
72 |
73 | return 0;
74 | }
75 |
--------------------------------------------------------------------------------
/src/HAF1.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 1001, inf = 2e9;
23 | int n, m, a[N], ans, F[2][N][4];
24 |
25 |
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 |
32 | scanf("%d%d", &n,&m);
33 |
34 | FOR(i,1,m) {
35 | FOR(j,1,n) {
36 | scanf("%d", &a[j]);
37 | FOR(t,0,3) F[0][j][t] = F[1][j][t];
38 | F[1][j][2] = a[j] + F[0][j][3];
39 | if (j == 1)
40 | F[1][j][0] = inf;
41 | else
42 | F[1][j][0] = a[j] + min(F[1][j-1][0], F[1][j-1][2]);
43 | }
44 | FOD(j,n,1) {
45 | if (j == n)
46 | F[1][j][1] = inf;
47 | else
48 | F[1][j][1] = a[j] + min(F[1][j+1][1], F[1][j+1][2]);
49 | F[1][j][3] = min(min(F[1][j][0], F[1][j][1]), F[1][j][2]);
50 | }
51 | }
52 |
53 | int ans = inf;
54 | FOR(j,1,n) ans = min(ans, F[1][j][3]);
55 |
56 | printf("%d\n", ans);
57 |
58 |
59 | return 0;
60 | }
61 |
--------------------------------------------------------------------------------
/src/HEAP1.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 |
23 |
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 |
30 | int T;
31 | cin >> T;
32 | while (T--) {
33 | priority_queue st;
34 | int n;
35 | scanf("%d", &n);
36 | FOR(i,1,n) {
37 | int x;
38 | scanf("%d", &x);
39 | st.push(-x);
40 | }
41 | ll ans = 0ll;
42 | FOR(i,1,n-1) {
43 | ll x = st.top();
44 | st.pop();
45 | ll y = st.top();
46 | st.pop();
47 | ans += x+y;
48 | st.push(x+y);
49 | }
50 | printf("%lld\n", -ans);
51 | }
52 |
53 | return 0;
54 | }
55 |
--------------------------------------------------------------------------------
/src/HELPPM.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 505;
23 | const ll inf = 1e9;
24 | int n, m, k, ans, i1, i2, J1, j2;
25 | ll F[N][N];
26 |
27 |
28 | int main() {
29 | // freopen("INP.TXT", "r", stdin);
30 | // freopen("OUT.TXT", "w", stdout);
31 |
32 | scanf("%d%d%d", &n,&m,&k);
33 | FOR(i,1,n)
34 | FOR(j,1,m) {
35 | int x;
36 | scanf("%d", &x);
37 | F[i][j] = F[i-1][j] + F[i][j-1] + (ll) x - F[i-1][j-1];
38 | }
39 |
40 | ans = inf;
41 |
42 | FOR(L,1,m)
43 | FOR(R,L,m) {
44 | int i = 1, j = 1;
45 | while (i <= j && j <= n) {
46 | ll W = F[j][R] - F[j][L-1] - F[i-1][R] + F[i-1][L-1];
47 | if (W >= k) {
48 | int S = (R-L+1) * (j-i+1);
49 | if (S < ans)
50 | ans = S, i1 = i, J1 = L, i2 = j, j2 = R;
51 | i++;
52 | } else
53 | j++;
54 | }
55 | }
56 |
57 | if (ans == inf) puts("-1");
58 | else
59 | printf("%d\n%d %d %d %d\n", ans, i1, J1, i2, j2);
60 |
61 | return 0;
62 | }
63 |
--------------------------------------------------------------------------------
/src/HSPC14A.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 1000000, oo = 1000000000;
23 | int t, m, n, x;
24 | ll res;
25 |
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 | scanf("%d", &t);
32 | while (t--) {
33 | scanf("%d", &m);
34 | if (m == 1) printf("0\n");
35 | else {
36 | res = oo;
37 | for (int i=1; i<=m; i++) {
38 | ll ans = 0;
39 | x = i;
40 | n = m;
41 | while (1) {
42 | if (n == 1 and x == 1) break;
43 | ans++;
44 | if (ans >= res) break;
45 | n = n-x;
46 | if (n < x) swap(n,x);
47 | }
48 | res = min(res,ans);
49 | }
50 | printf("%lld\n", res);
51 | }
52 | }
53 |
54 | return 0;
55 | }
56 |
--------------------------------------------------------------------------------
/src/HSPC14H.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 2000;
22 | int n, m, a[N][N], b[N][N], x;
23 | int f[N][N], fa[N][N], fb[N][N];
24 | char c;
25 |
26 |
27 | int main() {
28 | // freopen("INP.TXT", "r", stdin);
29 | // freopen("OUT.TXT", "w", stdout);
30 |
31 | scanf("%d%d", &n, &m);
32 | for (int i=1; i<=n; i++) {
33 | scanf("\n");
34 | for (int j=1; j<=m; j++) {
35 | scanf("%c", &c);
36 | scanf("%d", &x);
37 | if (c == 'A')
38 | a[i][j] = x;
39 | else
40 | b[i][j] = x;
41 | scanf(" ");
42 | }
43 | }
44 |
45 | for (int i=1; i<=n; i++)
46 | for (int j=1; j<=m; j++) {
47 | fa[i][j] = fa[i][j-1] + a[i][j];
48 | fb[i][j] = fb[i-1][j] + b[i][j];
49 | }
50 |
51 | for (int i=2; i<=n; i++)
52 | for (int j=2; j<=m; j++) {
53 | f[i][j] = f[i-1][j-1] + fa[i][j-1] + fb[i-1][j];
54 | f[i][j] = max(f[i][j], f[i-1][j] + fa[i][j-1]);
55 | f[i][j] = max(f[i][j], f[i][j-1] + fb[i-1][j]);
56 | }
57 |
58 | printf("%d", f[n][m]);
59 |
60 | return 0;
61 | }
62 |
--------------------------------------------------------------------------------
/src/HSPC14I.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int a,b,c,res;
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | while (scanf("%d",&a) == 1) {
28 | scanf("%d%d",&b,&c);
29 | printf("%d\n",max(b-a-1,c-b-1));
30 | }
31 |
32 | return 0;
33 | }
34 |
--------------------------------------------------------------------------------
/src/HSPC14J.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n, k, a[100000], top, res ;
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | while (scanf("%d",&n) == 1) {
28 | scanf("%d",&k);
29 | for (int i=1; i<=n+1; i++) a[i] = 1;
30 | a[1] = a[0] = 0;
31 | top = 0;
32 | res = 0;
33 | int i = 2;
34 | while (i <= n) {
35 | top++;
36 | if (top == k) {
37 | res = i;
38 | break;
39 | }
40 | for (int j=i+i; j<=n; j+=i) {
41 | if (a[j] == 1) {
42 | a[j] = 0;
43 | top++;
44 | if (top == k) {
45 | res = j;
46 | break;
47 | }
48 | }
49 | }
50 | if (res > 0) break;
51 | i++;
52 | while (a[i] == 0) i++;
53 | }
54 | printf("%d\n",res);
55 | }
56 |
57 | return 0;
58 | }
59 |
--------------------------------------------------------------------------------
/src/INSUL.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | long n,a[120000];
22 | int64_t res = 0;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%li",&n);
29 | for (long i=1; i<=n; i++) {
30 | scanf("%li",&a[i]);
31 | res += a[i];
32 | }
33 | sort(a+1,a+n+1);
34 | long tmp = 0;
35 | if (n % 2 == 0) {
36 | for (long i=1; i<=n/2; i++)
37 | tmp += a[i];
38 | res += (res - tmp) - tmp;
39 | } else {
40 | for (long i=1; i<=n/2; i++)
41 | tmp += a[i];
42 | long tmp2 = res - tmp - a[n/2+1];
43 | res += tmp2 - tmp;
44 | }
45 | printf("%I64d",res);
46 |
47 | return 0;
48 | }
49 |
--------------------------------------------------------------------------------
/src/IOIBIN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 10000;
22 | int n, u, v, t, pa[N+1], rnk[N+1];
23 |
24 | int FindSet(int u) {
25 | if (u == pa[u]) return u;
26 | return pa[u] = FindSet(pa[u]);
27 | }
28 |
29 | int main() {
30 | // freopen("INP.TXT", "r", stdin);
31 | // freopen("OUT.TXT", "w", stdout);
32 |
33 | FOR(i,1,N) pa[i] = i, rnk[i] = 0;
34 | scanf("%d", &n);
35 | while (n--) {
36 | scanf("%d%d%d", &u,&v,&t);
37 | u = FindSet(u);
38 | v = FindSet(v);
39 | if (t == 1) {
40 | pa[v] = u;
41 | if (rnk[u] < rnk[v]) swap(rnk[u], rnk[v]);
42 | if (rnk[u] == rnk[v]) rnk[u]++;
43 | } else {
44 | printf("%d\n", u == v);
45 | }
46 | }
47 |
48 |
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/IVANA.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n, a[500], f[500][500], res;
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | scanf("%d", &n);
28 | for (int i=1; i<=n; i++) {
29 | scanf("%d", &a[i]);
30 | a[i] %= 2;
31 | f[i][i] = (a[i] == 1);
32 | }
33 |
34 | for (int len=1; len 0);
45 | }
46 |
47 | printf("%d", res);
48 |
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/KAGAIN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 30005;
22 | int T, n, a[N], L[N], R[N];
23 | stack st;
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | cin >> T;
30 | while (T--) {
31 | scanf("%d", &n);
32 | FOR(i,1,n) scanf("%d", &a[i]);
33 |
34 | stack st;
35 | FOR(i,1,n) {
36 | while (! st.empty() && a[i] <= a[st.top()]) st.pop();
37 | L[i] = st.empty() ? 1 : st.top() + 1;
38 | st.push(i);
39 | }
40 |
41 | st = stack {};
42 | FOD(i,n,1) {
43 | while (! st.empty() && a[i] <= a[st.top()]) st.pop();
44 | R[i] = st.empty() ? n : st.top() - 1;
45 | st.push(i);
46 | }
47 |
48 | int ans = 0, i = 0, j = 0;
49 | FOR(k,1,n)
50 | if (ans < (R[k] - L[k] + 1 ) * a[k])
51 | ans = (R[k] - L[k] + 1 ) * a[k], i = L[k], j = R[k];
52 |
53 | printf("%d %d %d\n", ans, i, j);
54 | }
55 |
56 | return 0;
57 | }
58 |
--------------------------------------------------------------------------------
/src/KCOIN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | ll n, res, cnt;
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | scanf("%lld", &n);
28 | while (n > 0) {
29 | cnt += (n%2);
30 | n /= 2;
31 | }
32 | res = 1ll;
33 | for (int i=1; i<=cnt; i++) res *= 2ll;
34 | printf("%lld", res);
35 |
36 | return 0;
37 | }
38 |
--------------------------------------------------------------------------------
/src/KDIFF.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 3e5+5;
22 | int n, k, a[N], F[N];
23 | deque Max, Min;
24 |
25 | void push(int x) {
26 | while (! Max.empty() && x > Max.back()) Max.pop_back();
27 | Max.push_back(x);
28 | while (! Min.empty() && x < Min.back()) Min.pop_back();
29 | Min.push_back(x);
30 | }
31 |
32 | void pop(int x) {
33 | if (x == Max.front()) Max.pop_front();
34 | if (x == Min.front()) Min.pop_front();
35 | }
36 |
37 |
38 | int main() {
39 | // freopen("INP.TXT", "r", stdin);
40 | // freopen("OUT.TXT", "w", stdout);
41 |
42 | scanf("%d%d", &n,&k);
43 | FOR(i,1,n) scanf("%d", &a[i]);
44 |
45 | int i = 1;
46 | FOR(j,1,n) {
47 | push(a[j]);
48 | while (Max.front() - Min.front() > k) pop(a[i++]);
49 | F[j] = j - i + 1;
50 | }
51 |
52 | int ans = 0;
53 | FOR(i,1,n) {
54 | ans = max(ans, F[i] + F[i-F[i]]);
55 | F[i] = max(F[i-1], F[i]);
56 | }
57 |
58 | printf("%d\n", ans);
59 |
60 | return 0;
61 | }
62 |
--------------------------------------------------------------------------------
/src/KINV.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 50000, mod = 1000000000;
22 | int n, k, a[N], vt[N];
23 | ll res, f[20][N], t[N];
24 |
25 | ll get(int x) {
26 | ll ans = 0;
27 | while (x <= n) {
28 | ans = (ans + t[x]) % mod;
29 | x += x & (-x);
30 | }
31 | return ans;
32 | }
33 |
34 | void update(int x, ll add) {
35 | while (x > 0) {
36 | t[x] = (t[x] + add) % mod;
37 | x -= x & (-x);
38 | }
39 | }
40 |
41 |
42 | int main() {
43 | // freopen("INP.TXT", "r", stdin);
44 | // freopen("OUT.TXT", "w", stdout);
45 |
46 | scanf("%d%d", &n,&k);
47 | for (int i=1; i<=n; i++) {
48 | scanf("%d", &a[i]);
49 | vt[a[i]] = i;
50 | }
51 |
52 | for (int i=1; i<=n; i++) f[1][i] = 1;
53 | for (int i=2; i<=k; i++) {
54 | for (int j=1; j<=n; j++) t[j] = 0;
55 | for (int j=1; j<=n; j++) {
56 | f[i][j] = get(a[j]+1);
57 | update(a[j], f[i-1][j]);
58 | }
59 | }
60 |
61 | for (int i=1; i<=n; i++)
62 | res = (res + f[k][i]) % mod;
63 |
64 | printf("%lld", res);
65 |
66 | return 0;
67 | }
68 |
--------------------------------------------------------------------------------
/src/KMEDIAN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 500000;
22 | int n, k, a[N], f[N], b[N];
23 | ll t[N], res;
24 |
25 | void update(int x) {
26 | for (x; x<=a[0]; x+=x&-x) t[x]++;
27 | }
28 |
29 | ll get(int x) {
30 | ll ans = 0;
31 | for (x; x>0; x-=x&-x) ans += t[x];
32 | return ans;
33 | }
34 |
35 | int main() {
36 | // freopen("INP.TXT", "r", stdin);
37 | // freopen("OUT.TXT", "w", stdout);
38 |
39 | scanf("%d%d", &n,&k);
40 | for (int i=1; i<=n; i++) {
41 | scanf("%d", &a[i]);
42 | f[i] = f[i-1] + (a[i] >= k);
43 | b[++b[0]] = 2*f[i]-i-1;
44 | b[++b[0]] = 2*f[i-1]-i;
45 | }
46 |
47 | sort(b+1,b+b[0]+1);
48 | b[++b[0]] = N;
49 | for (int i=1; i
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 5e5+5;
22 | int a[N], b[N], n;
23 |
24 | struct data {
25 | int i, j, c;
26 | bool operator < (const data &o) const {
27 | return c > o.c;
28 | }
29 | };
30 |
31 | priority_queue st;
32 |
33 |
34 | int main() {
35 | // freopen("INP.TXT", "r", stdin);
36 | // freopen("OUT.TXT", "w", stdout);
37 |
38 | cin >> a[0] >> b[0] >> n;
39 | FOR(i,1,a[0]) scanf("%d", &a[i]);
40 | sort(a+1,a+a[0]+1);
41 | FOR(i,1,b[0]) scanf("%d", &b[i]);
42 | sort(b+1,b+b[0]+1);
43 |
44 | FOR(j,1,b[0]) st.push({1, j, a[1]+b[j]});
45 |
46 | FOR(i,1,n) {
47 | data t = st.top();
48 | st.pop();
49 | printf("%d\n", t.c);
50 | if (t.i < a[0])
51 | st.push({t.i+1, t.j, a[t.i+1] + b[t.j]});
52 | }
53 |
54 |
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/src/KPLANK.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1e6+6;
22 | int n, a[N], L[N], R[N];
23 | stack st;
24 |
25 |
26 | int main() {
27 | // freopen("INP.TXT", "r", stdin);
28 | // freopen("OUT.TXT", "w", stdout);
29 |
30 | scanf("%d", &n);
31 | FOR(i,1,n) scanf("%d", &a[i]);
32 |
33 | FOR(i,1,n) {
34 | while (! st.empty() && a[i] <= a[st.top()]) st.pop();
35 | L[i] = st.empty() ? 1 : st.top() + 1;
36 | st.push(i);
37 | }
38 |
39 | st = stack {};
40 | FOD(i,n,1) {
41 | while (! st.empty() && a[i] <= a[st.top()]) st.pop();
42 | R[i] = st.empty() ? n : st.top() - 1;
43 | st.push(i);
44 | }
45 |
46 | int ans = 0;
47 | FOR(i,1,n)
48 | if (R[i] - L[i] + 1 >= a[i]) ans = max(ans, a[i]);
49 |
50 | printf("%d\n", ans);
51 |
52 |
53 | return 0;
54 | }
55 |
--------------------------------------------------------------------------------
/src/LASCALE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | ll n, tr[20], ph[20], nt, np, a[20];
22 |
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%I64d",&n);
29 | a[0] = 1;
30 | for (int i=1; i<=18; i++) a[i] = a[i-1]*3;
31 | for (int i=0; n>0; n/=3,i++) ph[i] = n%3;
32 | for (int i=0; i<=17; i++) {
33 | if (ph[i] == 1) np++;
34 | else if (ph[i] == 2) nt++, tr[i] = 1, ph[i+1]++;
35 | else if (ph[i] == 3) ph[i+1]++;
36 | }
37 |
38 | printf("%I64d ", nt);
39 | for (int i=0; i<=18; i++)
40 | if (tr[i] == 1) printf("%I64d ", a[i]);
41 |
42 | EL;
43 |
44 | printf("%I64d ", np);
45 | for (int i=0; i<=18; i++)
46 | if (ph[i] == 1) printf("%I64d ", a[i]);
47 |
48 | return 0;
49 | }
50 |
--------------------------------------------------------------------------------
/src/LATGACH.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int base = 1e9;
22 | typedef vector BigInt;
23 |
24 | void Print(BigInt a) {
25 | printf("%d", a.back());
26 | FOD(i,a.size()-2,0) printf("%09d", a[i]);
27 | EL;
28 | }
29 |
30 | BigInt bigint(int x) {
31 | BigInt a;
32 | a.ep(x);
33 | return a;
34 | }
35 |
36 | BigInt operator + (BigInt a, BigInt b) {
37 | BigInt c;
38 | int v = 0;
39 | FOR(i,0,max(a.size(), b.size())-1) {
40 | if (i < a.size()) v += a[i];
41 | if (i < b.size()) v += b[i];
42 | c.ep(v%base);
43 | v /= base;
44 | }
45 | if (v) c.ep(v);
46 | return c;
47 | }
48 |
49 |
50 | int main() {
51 | // freopen("INP.TXT", "r", stdin);
52 | // freopen("OUT.TXT", "w", stdout);
53 |
54 | int T, n;
55 | BigInt F[150];
56 |
57 | F[1] = bigint(1);
58 | F[2] = bigint(2);
59 | FOR(i,3,100) F[i] = F[i-1] + F[i-2];
60 | scanf("%d", &T);
61 | while (T--) {
62 | scanf("%d", &n);
63 | Print(F[n]);
64 | }
65 |
66 | return 0;
67 | }
68 |
--------------------------------------------------------------------------------
/src/LEM7.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 15000, oo = 10000000;
23 | int e, fn[N], fs[N], fk[N];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d", &e);
30 |
31 | for (int i=1; i<=e; i++)
32 | for (int j=sqrt(i); j>0; j--)
33 | if (i%j == 0) {
34 | fn[i] = j + i/j;
35 | fs[i] = min(j, i/j);
36 | fk[i] = 1;
37 | break;
38 | }
39 |
40 | for (int i=2; i<=e; i++)
41 | for (int j=1; j*2<=i; j++) {
42 | int n = fn[j] + fn[i-j];
43 | int s = fs[j] + fs[i-j];
44 | int k = fk[j] + fk[i-j];
45 | if (n < fn[i] or (n == fn[i] and s < fs[i]) or (n == fn[i] and s == fs[i] and k < fk[i])) {
46 | fn[i] = n;
47 | fs[i] = s;
48 | fk[i] = k;
49 | }
50 | }
51 |
52 | printf("%d %d %d", fn[e], fs[e], fk[e]);
53 |
54 | return 0;
55 | }
56 |
--------------------------------------------------------------------------------
/src/LINEGAME.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n,a[1000001];
22 | ll f1[1000001],f2[1000001],res;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | for (int i=1; i<=n; i++) scanf("%d",&a[i]);
29 | for (int i=1; i<=n; i++) {
30 | f1[i] = max(f1[i-1],f2[i-1]+ll(a[i]));
31 | f2[i] = max(f2[i-1],f1[i-1]-ll(a[i]));
32 | }
33 | res = max(f1[n],f2[n]);
34 | printf("%lld",res);
35 |
36 | return 0;
37 | }
38 |
--------------------------------------------------------------------------------
/src/LIQ.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 1005;
23 | int n, a[N], F[N];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | cin >> n;
30 | FOR(i,1,n) scanf("%d", &a[i]);
31 |
32 | a[++n] = 10001;
33 | FOR(j,1,n) {
34 | F[j] = 1;
35 | FOR(i,1,j-1) if (a[i] < a[j]) F[j] = max(F[j], F[i]+1);
36 | }
37 |
38 | cout << F[n]-1;
39 |
40 | return 0;
41 | }
42 |
--------------------------------------------------------------------------------
/src/LIS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 3e4+5;
23 | int n, a[N], f[N];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | cin >> n;
30 | FOR(i,1,n) scanf("%d", &a[i]);
31 |
32 | f[1] = 1;
33 | int res = 1;
34 | FOR(i,2,n) {
35 | int l = 1, r = res, j = 0;
36 | while (l <= r) {
37 | int m = (l+r)/2;
38 | if (a[i] > a[f[m]]) {
39 | j = m;
40 | l = m+1;
41 | } else r = m-1;
42 | }
43 | if (j == res) f[++res] = i;
44 | if (a[i] < a[f[j+1]]) f[j+1] = i;
45 | }
46 |
47 | cout << res << endl;
48 |
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/LNACS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1500;
22 | int n, m, a[N], b[N], F[N][N];
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d%d", &n,&m);
29 | FOR(i,1,n) scanf("%d", &a[i]);
30 | FOR(j,1,m) scanf("%d", &b[j]);
31 | FOR(i,1,n) F[i][1] = F[i-1][1] || a[i] == b[1];
32 | FOR(j,1,m) F[1][j] = F[1][j-1] || a[1] == b[j];
33 | FOR(i,2,n)
34 | FOR(j,2,m) {
35 | F[i][j] = max(F[i-1][j], F[i][j-1]);
36 | if (a[i] == b[j])
37 | F[i][j] = max(F[i][j], F[i-2][j-2] + 1);
38 | }
39 | printf("%d\n", F[n][m]);
40 |
41 | return 0;
42 | }
43 |
--------------------------------------------------------------------------------
/src/LQDGONME.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1500;
22 | int n, m, a[15][N], F[N], pos[N][15], ans;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d%d", &n,&m);
29 | FOR(i,1,m)
30 | FOR(j,1,n) {
31 | scanf("%d", &a[i][j]);
32 | pos[a[i][j]][i] = j;
33 | }
34 | FOR(x,1,n) {
35 | int j = a[1][x];
36 | FOR(y,0,x-1) {
37 | int i = a[1][y], ok = 1;
38 | FOR(k,2,m)
39 | if (pos[j][k] <= pos[i][k]) {
40 | ok = 0;
41 | break;
42 | }
43 | if (ok)
44 | F[j] = max(F[j], F[i] + 1);
45 | }
46 | ans = max(ans, F[j]);
47 | }
48 | printf("%d\n", ans);
49 |
50 | return 0;
51 | }
52 |
--------------------------------------------------------------------------------
/src/LSFIGHT.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 550;
22 | int n, a[N][N], F[N][N];
23 | vector ans;
24 |
25 | int next(int i, int kc) {
26 | return (i + kc + n - 1) % n + 1;
27 | }
28 |
29 |
30 | int main() {
31 | // freopen("INP.TXT", "r", stdin);
32 | // freopen("OUT.TXT", "w", stdout);
33 |
34 | scanf("%d", &n);
35 | FOR(i,1,n) FOR(j,1,n) scanf("%d", &a[i][j]);
36 | FOR(i,1,n-1) F[i][i+1] = 1;
37 | F[n][1] = 1;
38 | FOR(kc,2,n-1) {
39 | FOR(i,1,n) {
40 | int j = next(i, kc), k = i;
41 | FOR(cnt,1,kc-1) {
42 | k = next(k, 1);
43 | if (F[i][k] && F[k][j] && (a[i][k] || a[j][k])) {
44 | F[i][j] = 1;
45 | break;
46 | }
47 | }
48 | }
49 | }
50 |
51 | FOR(i,1,n) {
52 | int j = i;
53 | FOR(cnt,1,n-1) {
54 | j = next(j, 1);
55 | if (F[i][j] && F[j][i] && a[i][j]) {
56 | ans.ep(i);
57 | break;
58 | }
59 | }
60 | }
61 |
62 | printf("%d\n", ans.size());
63 | for (auto i : ans) printf("%d\n", i);
64 |
65 |
66 | return 0;
67 | }
68 |
--------------------------------------------------------------------------------
/src/M3TILE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n;
22 | ll F[35];
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | F[0] = 1ll;
29 | for (int i = 2; i <= 30; i += 2) {
30 | F[i] = 3 * F[i-2];
31 | for (int j = 0; j <= i - 4; j += 2)
32 | F[i] += 2 * F[j];
33 | }
34 | while (scanf("%d", &n) != EOF) {
35 | if (n == -1) break;
36 | printf("%lld\n", F[n]);
37 | }
38 |
39 | return 0;
40 | }
41 |
--------------------------------------------------------------------------------
/src/MAXARR1.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 1e5;
23 | int T, n, a[N+1], f[N+1];
24 |
25 | void initializeArray() {
26 | a[0] = 0;
27 | f[0] = 0;
28 | a[1] = 1;
29 | f[1] = 1;
30 | FOR(i,2,N) {
31 | a[i] = a[i/2] + i%2 * a[i/2+1];
32 | f[i] = max(f[i-1], a[i]);
33 | }
34 | }
35 |
36 | int main() {
37 | // freopen("INP.TXT", "r", stdin);
38 | // freopen("OUT.TXT", "w", stdout);
39 |
40 | initializeArray();
41 |
42 | cin >> T;
43 | FOR(i,1,T) {
44 | scanf("%d", &n);
45 | printf("%d\n", f[n]);
46 | }
47 |
48 |
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/MAXCUB.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 31, inf = 1e9;
22 | int T, n, F[N][N][N], ans;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d", &T);
29 | while (T--) {
30 | scanf("%d", &n);
31 | FOR(i,1,n) FOR(j,1,n) FOR(k,1,n) {
32 | scanf("%d", &F[i][j][k]);
33 | F[i][j][k] += F[i-1][j][k] + F[i][j-1][k] + F[i][j][k-1]
34 | - F[i-1][j-1][k] - F[i-1][j][k-1] - F[i][j-1][k-1]
35 | + F[i-1][j-1][k-1];
36 | }
37 |
38 | ans = -inf;
39 |
40 | FOR(i,1,n) FOR(j,1,n) FOR(k,1,n) {
41 | int lim = min(i,min(j,k));
42 | FOR(t,1,lim) {
43 | int sum = F[i][j][k]
44 | - F[i-t][j][k] - F[i][j-t][k] - F[i][j][k-t]
45 | + F[i][j-t][k-t] + F[i-t][j][k-t] + F[i-t][j-t][k]
46 | - F[i-t][j-t][k-t];
47 | ans = max(ans, sum);
48 | }
49 | }
50 |
51 | printf("%d\n", ans);
52 | }
53 |
54 | return 0;
55 | }
56 |
--------------------------------------------------------------------------------
/src/MBEEWALK.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int dx[] = {-1,-1,0,0,1,1};
22 | int dy[2][6] = {{-1,0,-1,1,-1,0}, {0,1,-1,1,0,1}};
23 | int r = 50, F[100][100][15], dd[100][100];
24 |
25 | void bfs() {
26 | queue st;
27 | st.push(ii(r,r));
28 | F[r][r][0] = 1;
29 | dd[r][r] = 1;
30 | FOR(step,1,14) {
31 | int sz = st.size();
32 | while (sz--) {
33 | int i = st.front().X, j = st.front().Y;
34 | st.pop();
35 | dd[i][j] = 0;
36 | FOR(k,0,5) {
37 | int u = i + dx[k], v = j + dy[i%2][k];
38 | F[u][v][step] += F[i][j][step-1];
39 | st.push(ii(u,v));
40 | }
41 | }
42 | sz = st.size();
43 | while (sz--) {
44 | int i = st.front().X, j = st.front().Y;
45 | st.pop();
46 | if (! dd[i][j])
47 | st.push(ii(i,j)), dd[i][j] = 1;
48 | }
49 | }
50 | }
51 |
52 | int main() {
53 | // freopen("INP.TXT", "r", stdin);
54 | // freopen("OUT.TXT", "w", stdout);
55 |
56 | bfs();
57 |
58 | int T, n;
59 | cin >> T;
60 | while (T--)
61 | scanf("%d", &n), printf("%d\n", F[r][r][n]);
62 |
63 | return 0;
64 | }
65 |
--------------------------------------------------------------------------------
/src/MBLAST.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 2500;
22 | int n, m, k, F[N][N];
23 | string a, b;
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | getline(cin, a);
30 | a = "#" + a;
31 | n = a.size() - 1;
32 | getline(cin,b);
33 | b = "#" + b;
34 | m = b.size() - 1;
35 | scanf("%d", &k);
36 |
37 | FOR(i,0,m) F[0][i] = i*k;
38 | FOR(i,0,n) F[i][0] = i*k;
39 |
40 | FOR(i,1,n)
41 | FOR(j,1,m) {
42 | F[i][j] = F[i-1][j-1] + abs(a[i]-b[j]);
43 | F[i][j] = min(F[i][j], F[i-1][j-1] + k*2);
44 | F[i][j] = min(F[i][j], F[i-1][j] + k);
45 | F[i][j] = min(F[i][j], F[i][j-1] + k);
46 | }
47 |
48 | printf("%d\n", F[n][m]);
49 |
50 | return 0;
51 | }
52 |
--------------------------------------------------------------------------------
/src/MCARDS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 500;
22 | int c, n, ans, a[N], s[N];
23 | int b[6], dd[6], deg[6];
24 | ii x[N];
25 |
26 | void solve() {
27 | FOR(i,1,c) deg[b[i]] = i;
28 | FOR(i,1,n) a[i] = deg[x[i].X] * 1000 + x[i].Y;
29 | int k = 1;
30 | s[1] = a[1];
31 | FOR(i,2,n) {
32 | int j = k;
33 | while (j > 0 && a[i] <= s[j]) j--;
34 | if (j == k) s[++k] = a[i];
35 | s[j+1] = min(s[j+1], a[i]);
36 | }
37 | ans = min(ans, n-k);
38 | }
39 |
40 | void dq(int k) {
41 | if (k == c+1) solve();
42 | else FOR(i,1,c)
43 | if (!dd[i]) {
44 | dd[i] = 1;
45 | b[k] = i;
46 | dq(k+1);
47 | dd[i] = 0;
48 | }
49 | }
50 |
51 | int main() {
52 | // freopen("INP.TXT", "r", stdin);
53 | // freopen("OUT.TXT", "w", stdout);
54 |
55 | scanf("%d%d", &c,&n);
56 | n *= c;
57 | FOR(i,1,n) scanf("%d%d", &x[i].X, &x[i].Y);
58 | ans = n;
59 | dq(1);
60 | printf("%d\n", ans);
61 |
62 | return 0;
63 | }
64 |
--------------------------------------------------------------------------------
/src/MCOINS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n[100],m,k,l,f[1000001],maxn;
22 |
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d%d%d",&k,&l,&m);
29 | for (int i=1; i<=m; i++) {
30 | scanf("%d",&n[i]);
31 | maxn = max(n[i],maxn);
32 | }
33 | for (int i=1; i<=maxn; i++) {
34 | if (i-1 >= 0 and f[i-1] == 0) f[i] = 1;
35 | if (i-k >= 0 and f[i-k] == 0) f[i] = 1;
36 | if (i-l >= 0 and f[i-l] == 0) f[i] = 1;
37 | }
38 | for (int i=1; i<=m; i++)
39 | if (f[n[i]] == 1) printf("A");
40 | else printf("B");
41 |
42 | return 0;
43 | }
44 |
--------------------------------------------------------------------------------
/src/MDIGITS2.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int n, res;
22 | string a, m;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d", &n);
29 | m = to_string(n);
30 | FOR(i,1,n) a.append(to_string(i));
31 |
32 | res = a.find(m) + 1;
33 | printf("%d\n", res);
34 |
35 | return 0;
36 | }
37 |
--------------------------------------------------------------------------------
/src/MDOLLS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 20010;
22 | int T, n, s[N];
23 | ii a[N];
24 |
25 | bool cmp(ii u, ii v) {
26 | return u.X < v.X || (u.X == v.X && u.Y > v.Y);
27 | }
28 |
29 | int main() {
30 | // freopen("INP.TXT", "r", stdin);
31 | // freopen("OUT.TXT", "w", stdout);
32 |
33 | scanf("%d", &T);
34 | while (T--) {
35 | scanf("%d", &n);
36 | FOR(i,1,n) scanf("%d%d", &a[i].X, &a[i].Y);
37 | sort(a+1, a+n+1, cmp);
38 | int k = 1;
39 | s[1] = a[1].Y;
40 | FOR(i,2,n) {
41 | int j = k;
42 | while (j > 0 && a[i].Y > s[j]) j--;
43 | if (j == k) s[++k] = a[i].Y;
44 | s[j+1] = max(s[j+1], a[i].Y);
45 | }
46 | printf("%d\n", k);
47 | }
48 |
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/MINK.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 20000;
22 | int T, n, k, a[N];
23 | deque st;
24 |
25 | void push(int x) {
26 | while (!st.empty() && x < st.back()) st.pop_back();
27 | st.push_back(x);
28 | }
29 |
30 | void solve() {
31 | scanf("%d%d", &n,&k);
32 | FOR(i,1,n) scanf("%d", &a[i]);
33 | st = deque {};
34 | FOR(i,1,k-1) push(a[i]);
35 | FOR(i,k,n) {
36 | push(a[i]);
37 | printf("%d ", st.front());
38 | if (a[i-k+1] == st.front()) st.pop_front();
39 | }
40 | EL;
41 | }
42 |
43 |
44 | int main() {
45 | // freopen("INP.TXT", "r", stdin);
46 | // freopen("OUT.TXT", "w", stdout);
47 |
48 | cin >> T;
49 | while (T--) solve();
50 |
51 | return 0;
52 | }
53 |
--------------------------------------------------------------------------------
/src/MMASS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | string s;
22 | stack st;
23 | map val;
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | cin >> s;
30 |
31 | val['C'] = 12;
32 | val['H'] = 1;
33 | val['O'] = 16;
34 | val['('] = -1;
35 | val[')'] = 0;
36 |
37 | for (int i = 0; i < s.size(); i++) {
38 | if (s[i] == '(') {
39 | st.push(val[s[i]]);
40 | } else if (s[i] == ')') {
41 | int v = val[')'], total = 0;
42 | while (v != val['(']) {
43 | v = st.top();
44 | st.pop();
45 | if (v != val['(']) total += v;
46 | }
47 | st.push(total);
48 | } else if (s[i] == 'C' || s[i] == 'H' || s[i] == 'O') {
49 | st.push(val[s[i]]);
50 | } else { // 2 -> 9
51 | int v = st.top();
52 | st.pop();
53 | st.push(v * (int)(s[i] - '0'));
54 | }
55 | }
56 |
57 | int res = 0;
58 | while (!st.empty()) {
59 | res += st.top();
60 | st.pop();
61 | }
62 |
63 | cout << res << endl;
64 |
65 | return 0;
66 | }
67 |
--------------------------------------------------------------------------------
/src/MMAXPER.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1000;
22 | int n, a[N], b[N], F[N][2];
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | cin >> n;
29 | FOR(i,1,n) scanf("%d%d",a+i,b+i);
30 |
31 | F[1][0] = a[1];
32 | F[1][1] = b[1];
33 | FOR(i,2,n) {
34 | F[i][0] = max(F[i-1][0] + a[i] + abs(b[i]-b[i-1]), F[i-1][1] + a[i] + abs(b[i]-a[i-1]));
35 | F[i][1] = max(F[i-1][0] + b[i] + abs(a[i]-b[i-1]), F[i-1][1] + b[i] + abs(a[i]-a[i-1]));
36 | }
37 |
38 | printf("%d\n", max(F[n][0], F[n][1]));
39 |
40 | return 0;
41 | }
42 |
--------------------------------------------------------------------------------
/src/MMMGAME.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | int t, n, x, z, cnt;
23 |
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d", &t);
30 | while (t--) {
31 | z = 0;
32 | cnt = 0;
33 | scanf("%d", &n);
34 | for (int i=1; i<=n; i++) {
35 | scanf("%d", &x);
36 | if (x == 1) cnt++;
37 | z = z ^ x;
38 | }
39 | if (cnt == n) {
40 | if (n%2 == 0)
41 | printf("John\n");
42 | else
43 | printf("Brother\n");
44 | } else {
45 | if (z > 0)
46 | printf("John\n");
47 | else
48 | printf("Brother\n");
49 | }
50 | }
51 |
52 | return 0;
53 | }
54 |
--------------------------------------------------------------------------------
/src/MNERED.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 500;
22 | int n, m, a[N][N], f[N][N], res = N*N;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d%d",&n,&m);
29 | for (int i=1,u,v; i<=m; i++) {
30 | scanf("%d%d", &u,&v);
31 | a[u][v] = 1;
32 | }
33 |
34 | for (int j=1; j<=n; j++)
35 | for (int i=1; i<=n; i++)
36 | f[i][j] = f[i-1][j] + a[i][j];
37 |
38 | for (int i=1; i<=n; i++)
39 | for (int l=1; l<=n; l++) {
40 | for (int r=l; r<=n; r++) {
41 | int ngang = r-l+1;
42 | int doc = m/ngang;
43 | if (m%ngang != 0 or doc <= 0 or i+doc-1 > n) continue;
44 |
45 | int sum = 0;
46 | for (int k=l; k<=r; k++)
47 | sum += f[i+doc-1][k] - f[i-1][k];
48 |
49 | res = min(res, m-sum);
50 | }
51 | }
52 |
53 | printf("%d", res);
54 |
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/src/MPILOT.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 10001;
22 | int n, a[N], b[N], F[2][N];
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d", &n);
29 | FOR(i,1,n) scanf("%d%d", &a[i], &b[i]);
30 | F[1][1] = b[1];
31 | FOR(i,2,n) {
32 | int M = min(i,n/2), ii = i%2;
33 | F[ii][0] = F[1-ii][1] + a[i];
34 | F[ii][M] = F[1-ii][M-1] + b[i];
35 | FOR(j,1,M-1)
36 | F[ii][j] = min(F[1-ii][j-1] + b[i], F[1-ii][j+1] + a[i]);
37 | }
38 | printf("%d\n", F[0][0]);
39 |
40 | return 0;
41 | }
42 |
--------------------------------------------------------------------------------
/src/MRECAMAN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 500010;
22 | int n, a[N];
23 | set b;
24 | set ::iterator it;
25 |
26 | int main() {
27 | // freopen("INP.TXT", "r", stdin);
28 | // freopen("OUT.TXT", "w", stdout);
29 |
30 | b.insert(0);
31 | a[0] = 0;
32 | for (int i=1; i<=N; i++) {
33 | int k = a[i-1] - i;
34 | if (k > 0) {
35 | it = b.find(k);
36 | if (it != b.end()) {
37 | a[i] = a[i-1] + i;
38 | b.insert(a[i]);
39 | } else {
40 | a[i] = k;
41 | b.insert(k);
42 | }
43 | } else {
44 | a[i] = a[i-1] + i;
45 | b.insert(a[i]);
46 | }
47 | }
48 |
49 | while (1) {
50 | scanf("%d", &n);
51 | if (n == -1) break;
52 | printf("%d\n", a[n]);
53 | }
54 |
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/src/MSE07B.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | struct data {
22 | int k, p;
23 | bool operator < (const data &o) const {
24 | return p < o.p;
25 | }
26 | };
27 |
28 | set st2, st3;
29 |
30 | int main() {
31 | // freopen("INP.TXT", "r", stdin);
32 | // freopen("OUT.TXT", "w", stdout);
33 |
34 | int t;
35 | for (;;) {
36 | scanf("%d", &t);
37 | if (t == 0) return 0;
38 | if (t == 1) {
39 | int k, p;
40 | scanf("%d%d", &k,&p);
41 | st2.insert({k,-p});
42 | st3.insert({k,p});
43 | }
44 | if (t == 2) {
45 | if (st2.empty()) puts("0");
46 | else {
47 | data p = *st2.begin();
48 | printf("%d\n", p.k);
49 | st3.erase({p.k,-p.p});
50 | st2.erase(p);
51 | }
52 | }
53 | if (t == 3) {
54 | if (st3.empty()) puts("0");
55 | else {
56 | data p = *st3.begin();
57 | printf("%d\n", p.k);
58 | st2.erase({p.k,-p.p});
59 | st3.erase(p);
60 | }
61 | }
62 | }
63 |
64 | return 0;
65 | }
66 |
--------------------------------------------------------------------------------
/src/MSTICK.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 5010;
22 | int T, n, s[N];
23 | ii a[N];
24 |
25 | bool cmp(ii u, ii v) {
26 | return u.X < v.X || (u.X == v.X && u.Y < v.Y);
27 | }
28 |
29 | int main() {
30 | // freopen("INP.TXT", "r", stdin);
31 | // freopen("OUT.TXT", "w", stdout);
32 |
33 | scanf("%d", &T);
34 | while (T--) {
35 | scanf("%d", &n);
36 | FOR(i,1,n) scanf("%d%d", &a[i].X, &a[i].Y);
37 | sort(a+1, a+n+1, cmp);
38 | int k = 1;
39 | s[1] = a[1].Y;
40 | FOR(i,2,n) {
41 | int j = k;
42 | while (j > 0 && s[j] <= a[i].Y) j--;
43 | if (j == k) s[++k] = a[i].Y;
44 | s[j+1] = max(s[j+1], a[i].Y);
45 | }
46 | printf("%d\n", k);
47 | }
48 |
49 |
50 | return 0;
51 | }
52 |
--------------------------------------------------------------------------------
/src/MTREE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 100005;
22 | const ll mod = 1000000007;
23 | int n, u, v, c;
24 | ll F[N], ans = 0ll;
25 | vector a[N];
26 |
27 | void dfs(int p, int u) {
28 | F[u] = 1ll;
29 | for (auto v : a[u]) {
30 | if (v.X == p) continue;
31 | dfs(u, v.X);
32 | F[u] = (F[u] + F[v.X] * v.Y % mod) % mod;
33 | }
34 | for (auto v : a[u]) {
35 | if (v.X == p) continue;
36 | ll T = F[v.X] * v.Y % mod;
37 | T = T * (F[u] - F[v.X] * (ll) v.Y % mod + 1 + mod) % mod;
38 | ans = (ans + T) % mod;
39 | }
40 | }
41 |
42 | int main() {
43 | // freopen("INP.TXT", "r", stdin);
44 | // freopen("OUT.TXT", "w", stdout);
45 |
46 | scanf("%d", &n);
47 | FOR(i,1,n-1) {
48 | scanf("%d%d%d", &u,&v,&c);
49 | a[u].ep(v,c);
50 | a[v].ep(u,c);
51 | }
52 | dfs(0,1);
53 | if (ans%2) ans += mod;
54 | printf("%lld\n", ans/2);
55 |
56 | return 0;
57 | }
58 |
--------------------------------------------------------------------------------
/src/MULONE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1000001;
22 | int n,t,k;
23 | char res[2*N];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d",&t);
30 | while (t--) {
31 | scanf("%d",&n);
32 | k = 0;
33 | for (int i=1; i<2*n; i++) {
34 | if (i <= n)
35 | k += i;
36 | else
37 | k += 2*n-i;
38 | res[2*n-i] = k % 10 + 48;
39 | k /= 10;
40 | }
41 | for (int i=1; i<2*n; i++) printf("%c",res[i]);
42 | printf("\n");
43 | }
44 |
45 | return 0;
46 | }
47 |
--------------------------------------------------------------------------------
/src/MYSTERY.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int base = 20122007;
22 | ll n,res = 1;
23 |
24 | ll g(int x) {
25 | if (x == 1) return 3;
26 | ll tmp = g(x/2) % base;
27 | if (x % 2 == 0) return (tmp*tmp) % base;
28 | return ((tmp*tmp % base)*3) % base;
29 | }
30 |
31 | ll f(int x) {
32 | return (g(x) - 1 + base) % base;
33 | }
34 |
35 | int main() {
36 | // freopen("INP.TXT", "r", stdin);
37 | // freopen("OUT.TXT", "w", stdout);
38 |
39 | scanf("%lli",&n);
40 | for (int i=1; i*i<=n; i++) {
41 | if (n % i == 0) {
42 | if (i*i == n)
43 | res = res*f(i) % base;
44 | else
45 | res = ((res*f(i) % base) * f(n/i)) % base;
46 | }
47 | }
48 | printf("%lli",res);
49 |
50 | return 0;
51 | }
52 |
--------------------------------------------------------------------------------
/src/NCOB.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int res;
22 |
23 | void solve(ll x, ll y) {
24 | res = 1-res;
25 | if (x >= 2*y) return ;
26 | x -= y;
27 | if (x < y) swap(x,y);
28 | solve(x,y);
29 | }
30 |
31 | int main() {
32 | // freopen("INP.TXT", "r", stdin);
33 | // freopen("OUT.TXT", "w", stdout);
34 |
35 | ll x, y;
36 | while (scanf("%lld", &x) == 1) {
37 | scanf("%lld", &y);
38 | if (x == 0 && y == 0) return 0;
39 | res = 0;
40 | if (x < y) swap(x,y);
41 | solve(x,y);
42 | if (res == 1) printf("T\n");
43 | else printf("S\n");
44 | }
45 |
46 | return 0;
47 | }
48 |
--------------------------------------------------------------------------------
/src/NDCCARD.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1e5;
22 | int n, m, a[N], ans;
23 | ii F[N];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d%d", &n,&m);
30 | FOR(i,1,n) scanf("%d", &a[i]);
31 | FOR(i,1,n)
32 | FOR(j,i+1,n)
33 | F[a[i]+a[j]] = {i,j};
34 | m = min(m,30000);
35 | FOR(i,1,n) {
36 | FOD(j,m-a[i],0)
37 | if (F[j] != ii(0,0) && F[j].X != i && F[j].Y != i) {
38 | ans = max(ans, a[i]+j);
39 | break;
40 | }
41 | }
42 | printf("%d\n", ans);
43 |
44 | return 0;
45 | }
46 |
--------------------------------------------------------------------------------
/src/NK05MNIM.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int t, n, x, z, cnt;
22 |
23 | int main() {
24 | // freopen("INP.TXT", "r", stdin);
25 | // freopen("OUT.TXT", "w", stdout);
26 |
27 | scanf("%d", &t);
28 | while (t--) {
29 | z = 0;
30 | cnt = 0;
31 | scanf("%d", &n);
32 | for (int i=1; i<=n; i++) {
33 | scanf("%d", &x);
34 | if (x == 1) cnt++;
35 | z = z ^ x;
36 | }
37 | if (cnt == n) {
38 | if (n%2 == 0)
39 | printf("1\n");
40 | else
41 | printf("-1\n");
42 | } else {
43 | if (z > 0)
44 | printf("1\n");
45 | else
46 | printf("-1\n");
47 | }
48 | }
49 |
50 |
51 | return 0;
52 | }
53 |
--------------------------------------------------------------------------------
/src/NKABD.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | long l,r,x,y,z,a[200000],res = 0;
22 |
23 | void edit() {
24 | for (long i=1; i<=r; i++) a[i] = 1;
25 | for (long i=2; i<=r/2; i++)
26 | for (long j=2; j<=r/i; j++)
27 | a[i*j] += i;
28 | }
29 |
30 | int main() {
31 | // freopen("INP.TXT", "r", stdin);
32 | // freopen("OUT.TXT", "w", stdout);
33 |
34 | scanf("%li%li",&l,&r);
35 | edit();
36 | for (long i=l; i<=r; i++)
37 | if (a[i] > i) res++;
38 | printf("%li",res);
39 |
40 | return 0;
41 | }
42 |
--------------------------------------------------------------------------------
/src/NKBUS.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int maxn = 250000,z=0;
22 | int n,m,k,t,f[maxn],a[maxn],p,x,res;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%d%d",&n,&m);
29 |
30 | // thoi gian xe den tram i
31 | f[1] = 0;
32 | // so luong nguoi
33 | p = 0;
34 |
35 | for (int i=1; i<=n; i++) {
36 | scanf("%d%d",&t,&k);
37 |
38 | // thoi gian den tram tiep tang len t
39 | f[i+1] = f[i] + t;
40 |
41 | for (long j=p+1; j<=p+k; j++) {
42 | scanf("%d",&x);
43 | // a[j] la thoi gian xe buyt cho thang j
44 | a[j] = max(z,x-f[i]);
45 | }
46 |
47 | // tang luong nguoi len k
48 | p += k;
49 | }
50 |
51 | sort(a+1,a+p+1);
52 |
53 | res = f[n+1]+a[m];
54 |
55 | printf("%d",res);
56 |
57 | return 0;
58 | }
59 |
--------------------------------------------------------------------------------
/src/NKCABLE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 30000;
22 | const int inf = 1e9;
23 | int n, a[N], F[N][2];
24 |
25 | int main() {
26 | // freopen("INP.TXT", "r", stdin);
27 | // freopen("OUT.TXT", "w", stdout);
28 |
29 | scanf("%d", &n);
30 | FOR(i,1,n-1) scanf("%d", &a[i]);
31 | F[2][1] = a[1];
32 | F[2][0] = inf;
33 | FOR(i,3,n) {
34 | F[i][0] = F[i-1][1];
35 | F[i][1] = min(F[i-1][0], F[i-1][1]) + a[i-1];
36 | }
37 |
38 | printf("%d\n", F[n][1]);
39 |
40 | return 0;
41 | }
42 |
--------------------------------------------------------------------------------
/src/NKCITY.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 1005;
23 | const int M = 1e4+5;
24 |
25 | struct edge {
26 | int u, v, t;
27 | };
28 |
29 | int n, m, pa[N];
30 | edge e[M];
31 |
32 | bool cmp(edge x, edge y) {
33 | return x.t < y.t;
34 | }
35 |
36 | int findSet(int u) {
37 | if (u == pa[u]) return u;
38 | return pa[u] = findSet(pa[u]);
39 | }
40 |
41 | void read() {
42 | cin >> n >> m;
43 | FOR(i,1,m) {
44 | scanf("%d %d %d", &e[i].u, &e[i].v, &e[i].t);
45 | }
46 | }
47 |
48 | void solve() {
49 | sort(e+1,e+m+1, cmp);
50 | FOR(i,1,n) pa[i] = i;
51 |
52 | int res = 1e9;
53 | FOR(i,1,m) {
54 | int u = findSet(e[i].u);
55 | int v = findSet(e[i].v);
56 | if (u == v) continue;
57 | pa[v] = u;
58 | res = e[i].t;
59 | }
60 |
61 | cout << res << endl;
62 | }
63 |
64 | int main() {
65 | // freopen("INP.TXT", "r", stdin);
66 | // freopen("OUT.TXT", "w", stdout);
67 |
68 | read();
69 | solve();
70 |
71 |
72 | return 0;
73 | }
74 |
--------------------------------------------------------------------------------
/src/NKGUARD.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 705;
22 | int n, m, a[N][N], dd[N][N], ans;
23 | int dx[] = {-1,-1,-1,0,0,1,1,1};
24 | int dy[] = {-1,0,1,-1,1,-1,0,1};
25 |
26 | void bfs(int i, int j) {
27 | int ok = 1;
28 | queue st;
29 | st.push({i,j});
30 | dd[i][j] = 1;
31 | while (!st.empty()) {
32 | i = st.front().X, j = st.front().Y;
33 | st.pop();
34 | FOR(k,0,7) {
35 | int u = i + dx[k], v = j + dy[k];
36 | if (u < 1 || u > n || v < 1 || v > m) continue;
37 | if (a[u][v] == a[i][j] && !dd[u][v]) {
38 | dd[u][v] = 1;
39 | st.push({u,v});
40 | }
41 | if (a[u][v] > a[i][j]) ok = 0;
42 | }
43 | }
44 | ans += ok;
45 | }
46 |
47 | int main() {
48 | // freopen("INP.TXT", "r", stdin);
49 | // freopen("OUT.TXT", "w", stdout);
50 |
51 | scanf("%d%d", &n,&m);
52 | FOR(i,1,n) FOR(j,1,m) scanf("%d", &a[i][j]);
53 |
54 | FOR(i,1,n) FOR(j,1,m) if (!dd[i][j]) bfs(i,j);
55 |
56 | printf("%d\n", ans);
57 |
58 | return 0;
59 | }
60 |
--------------------------------------------------------------------------------
/src/NKINV.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 60005;
22 |
23 | int n, t[N], x;
24 | ll res = 0ll;
25 |
26 | int retrieve(int x) {
27 | int ans = 0;
28 | for (; x0; x-=x&-x) t[x]++;
34 | }
35 |
36 | int main() {
37 | // freopen("INP.TXT", "r", stdin);
38 | // freopen("OUT.TXT", "w", stdout);
39 |
40 | cin >> n;
41 | FOR(i,1,n) {
42 | scanf("%d", &x);
43 | res += retrieve(x+1);
44 | update(x);
45 | }
46 |
47 | cout << res << endl;
48 |
49 |
50 | return 0;
51 | }
52 |
--------------------------------------------------------------------------------
/src/NKLEAGUE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 1500;
22 | int n, cnt, node[N], dd[N];
23 | vector ke[N];
24 | char s[N];
25 |
26 | void dfs(int u) {
27 | dd[u] = 1;
28 | for (int i=0; i
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | char s[255];
22 | string a, b;
23 |
24 | int main() {
25 | // freopen("INP.TXT", "r", stdin);
26 | // freopen("OUT.TXT", "w", stdout);
27 |
28 | scanf("%s\n", &s);
29 | a = string(s);
30 |
31 | scanf("%s\n", &s);
32 | b = string(s);
33 |
34 | FOR(i,0,sz(a)) {
35 | string str = a.substr(i);
36 | if (b.find(str) == 0) {
37 | cout << sz(b) + i;
38 | break;
39 | }
40 | }
41 |
42 | return 0;
43 | }
44 |
--------------------------------------------------------------------------------
/src/NKMAXSEQ.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 150000;
22 | int n, a[N], p, f[N], t[N], ans;
23 |
24 | int get(int x) {
25 | int ans = n+1;
26 | for (x; x > 0; x -= x&-x) ans = min(ans, t[x]);
27 | return ans;
28 | }
29 |
30 | void upd(int x, int v) {
31 | for (x; x <= f[0]; x += x&-x) t[x] = min(t[x], v);
32 | }
33 |
34 |
35 | int main() {
36 | // freopen("INP.TXT", "r", stdin);
37 | // freopen("OUT.TXT", "w", stdout);
38 |
39 | scanf("%d%d", &n, &p);
40 | FOR(i,1,n) {
41 | scanf("%d", &a[i]);
42 | a[i] += a[i-1];
43 | f[++f[0]] = a[i];
44 | f[++f[0]] = a[i]-p;
45 | }
46 | f[++f[0]] = 0;
47 | f[++f[0]] = 0-p;
48 | sort(f+1, f+f[0]+1);
49 | f[0] = unique(f+1, f+f[0]+1)-f-1;
50 | FOR(i,1,f[0]) t[i] = n+1;
51 | ans = -1;
52 | FOR(j,1,n) {
53 | int x = lower_bound(f+1, f+f[0]+1, a[j-1])-f;
54 | upd(x,j);
55 | x = lower_bound(f+1, f+f[0]+1, a[j]-p)-f;
56 | int i = get(x);
57 | if (i == n+1) continue;
58 | ans = max(ans, j-i+1);
59 | }
60 | printf("%d\n", ans);
61 |
62 | return 0;
63 | }
64 |
--------------------------------------------------------------------------------
/src/NKNUMFRE.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | int rev(int x) {
22 | int ans = 0;
23 | while (x > 0) {
24 | ans = ans*10 + x%10;
25 | x /= 10;
26 | }
27 | return ans;
28 | }
29 |
30 | int a, b, res;
31 |
32 | int main() {
33 | // freopen("INP.TXT", "r", stdin);
34 | // freopen("OUT.TXT", "w", stdout);
35 |
36 | cin >> a >> b;
37 | FOR(i,a,b) {
38 | if (__gcd(i, rev(i)) == 1) res++;
39 | }
40 |
41 | cout << res << endl;
42 |
43 | return 0;
44 | }
45 |
--------------------------------------------------------------------------------
/src/NKPALIN.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 | const int N = 2500;
22 | int n, F[N][N];
23 | string s, ans;
24 |
25 | void solve(int i, int j, int L, int R) {
26 | if (L > R) return ;
27 | if (i == j) ans[L] = s[i];
28 | else {
29 | if (s[i] == s[j]) {
30 | ans[L] = ans[R] = s[i];
31 | solve(i+1, j-1, L+1, R-1);
32 | } else {
33 | if (F[i][j] == F[i+1][j])
34 | solve(i+1, j, L, R);
35 | else
36 | solve(i, j-1, L, R);
37 | }
38 | }
39 | }
40 |
41 | int main() {
42 | // freopen("INP.TXT", "r", stdin);
43 | // freopen("OUT.TXT", "w", stdout);
44 |
45 |
46 | getline(cin, s);
47 | n = s.size()-1;
48 | FOD(i,n,0)
49 | FOR(j,i,n) {
50 | if (i == j) F[i][j] = 1;
51 | else {
52 | if (s[i] == s[j]) {
53 | if (i == j-1)
54 | F[i][j] = 2;
55 | else
56 | F[i][j] = F[i+1][j-1] + 2;
57 | } else
58 | F[i][j] = max(F[i+1][j], F[i][j-1]);
59 | }
60 | }
61 |
62 | ans.resize(F[0][n]);
63 |
64 | solve(0, n, 0, F[0][n]-1);
65 |
66 | cout << ans;
67 |
68 | return 0;
69 | }
70 |
--------------------------------------------------------------------------------
/src/NKPATH.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace std;
4 |
5 | typedef long long ll;
6 | typedef pair ii;
7 | typedef unsigned long long ull;
8 |
9 | #define X first
10 | #define Y second
11 | #define pb push_back
12 | #define mp make_pair
13 | #define ep emplace_back
14 | #define EL printf("\n")
15 | #define sz(A) (int) A.size()
16 | #define FOR(i,l,r) for (int i=l;i<=r;i++)
17 | #define FOD(i,r,l) for (int i=r;i>=l;i--)
18 | #define fillchar(a,x) memset(a, x, sizeof (a))
19 | #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
20 |
21 |
22 | const int N = 101, mod = 1e9;
23 | int n, m, a[N][N], F[N][N], ans;
24 |
25 |
26 | int main() {
27 | // freopen("INP.TXT", "r", stdin);
28 | // freopen("OUT.TXT", "w", stdout);
29 |
30 |
31 | scanf("%d%d", &n,&m);
32 | FOR(i,1,n) FOR(j,1,m) scanf("%d", &a[i][j]);
33 | F[1][1] = 1;
34 | FOR(i,2,n) {
35 | F[i][1] = 1;
36 | FOR(j,1,i-1)
37 | if (__gcd(a[i][1], a[j][1]) > 1)
38 | F[i][1] = (F[i][1] + F[j][1]) % mod;
39 | }
40 | FOR(i,2,m)
41 | FOR(j,1,i-1)
42 | if (__gcd(a[1][i], a[1][j]) > 1)
43 | F[1][i] = (F[1][i] + F[1][j]) % mod;
44 | FOR(j,2,m)
45 | FOR(i,2,n)
46 | FOR(p,1,i) {
47 | int Q = j == m ? m-1 : j;
48 | FOR(q,1,Q)
49 | if (ii(i,j) != ii(p,q))
50 | if (__gcd(a[i][j], a[p][q]) > 1)
51 | F[i][j] = (F[i][j] + F[p][q]) % mod;
52 | }
53 |
54 | FOR(i,1,n) ans = (ans + F[i][m]) % mod;
55 | printf("%d", ans);
56 |
57 | return 0;
58 | }
59 |
--------------------------------------------------------------------------------
/src/NKRACING.cpp:
--------------------------------------------------------------------------------
1 | #include