CSES - Aalto Competitive Programming 2024 - wk11 - Mon - Results
Submission details
Task:Bus tours
Sender:snude
Submission time:2024-11-18 17:04:18 +0200
Language:C++ (C++11)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.00 sdetails
#18ACCEPTED0.01 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#210.00 sdetails
#220.00 sdetails
#230.00 sdetails
#240.00 sdetails
#250.00 sdetails
#260.00 sdetails
#270.00 sdetails
#280.00 sdetails
#290.00 sdetails
#300.00 sdetails
#310.00 sdetails
#320.00 sdetails
#330.00 sdetails
#340.00 sdetails
#350.00 sdetails
#360.00 sdetails
#370.00 sdetails
#380.07 sdetails
#390.00 sdetails
#400.07 sdetails
#410.00 sdetails
#420.00 sdetails
#430.00 sdetails
#440.00 sdetails
#450.00 sdetails
#460.00 sdetails
#470.00 sdetails
#480.00 sdetails
#490.00 sdetails
#500.07 sdetails
#510.00 sdetails
#520.07 sdetails
#530.00 sdetails
#540.00 sdetails
#550.00 sdetails
#560.00 sdetails
#570.00 sdetails
#580.00 sdetails
#590.00 sdetails
#600.00 sdetails

Code

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

// Debug printing
#ifdef DEBUG
#define deb(fmt, args...) printf("DEBUG: %d: " fmt, __LINE__, ##args)
#define debug_print(fmt, args...) printf(fmt, ##args)
#else
#define deb(fmt, args...)
#define debug_print(fmt, args...)
#endif

void print_array(vector<int> in, const string title = "Vector")
{
	debug_print("DEBUG: %s [\nDEBUG: ", title.c_str());
	for (unsigned int i = 0; i < in.size(); i++) {
		debug_print("%d ", in[i]);
	}
	debug_print("\nDEBUG: ] END\n");
}

void print_matrix(vector<vector<int>> in, const string title = "Matrix")
{
	debug_print("DEBUG: %s [\nDEBUG: ", title.c_str());
	for (unsigned int i = 0; i < in.size(); i++) {
		for (unsigned int j = 0; j < in[i].size(); j++) {
			debug_print("%d ", in[i][j]);
		}
		debug_print("\nDEBUG: ");
	}
	debug_print("DEBUG: ] END\n");
}

ll gcd(ll a, ll b)
{
	if (b == 0) return a;
	return gcd(b, a % b);
}

int main(int argc, char *argv[])
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	// Read the input parameters
	int n, q;
	cin >> n >> q;

	for (int i = 0; i < q; i++) {
		int a, b;
		cin >> a >> b;

		ll rem = (n % a);
		if (rem == 0) {
			cout << n / a << "\n";
			continue;
		}
		ll paskaa = gcd(a, n);
		ll lcm = a * n / paskaa;
		// deb("p: %lld\n", paskaa);
		cout << lcm / a << "\n";
	}
	
	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
1 2
1 1
1 1

correct output
1
1

user output
1
1

Test 2

Verdict: ACCEPTED

input
2 4
1 2
2 2
1 1
1 2

correct output
2
1
2
2

user output
2
1
2
2

Test 3

Verdict: ACCEPTED

input
3 6
2 1
1 3
2 3
2 2
...

correct output
3
3
3
3
3
...

user output
3
3
3
3
3
...

Test 4

Verdict: ACCEPTED

input
4 8
3 1
3 4
2 1
3 3
...

correct output
4
4
2
4
1
...

user output
4
4
2
4
1
...

Test 5

Verdict: ACCEPTED

input
5 10
5 5
3 1
5 5
4 4
...

correct output
1
5
1
5
5
...

user output
1
5
1
5
5
...

Test 6

Verdict: ACCEPTED

input
6 12
2 1
6 5
2 3
6 6
...

correct output
3
1
3
1
2
...

user output
3
1
3
1
2
...

Test 7

Verdict: ACCEPTED

input
7 14
7 7
3 2
6 1
1 3
...

correct output
1
7
7
7
7
...

user output
1
7
7
7
7
...

Test 8

Verdict: ACCEPTED

input
8 16
1 2
7 3
4 8
6 4
...

correct output
8
8
2
4
1
...

user output
8
8
2
4
1
...

Test 9

Verdict: ACCEPTED

input
9 18
8 1
9 3
8 4
5 8
...

correct output
9
1
9
9
3
...

user output
9
1
9
9
3
...

Test 10

Verdict: ACCEPTED

input
10 20
1 4
6 5
5 1
2 4
...

correct output
10
5
2
5
5
...

user output
10
5
2
5
5
...

Test 11

Verdict: ACCEPTED

input
1 2
1 1
1 1

correct output
1
1

user output
1
1

Test 12

Verdict: ACCEPTED

input
2 4
1 1
1 2
1 1
2 2

correct output
2
2
2
1

user output
2
2
2
1

Test 13

Verdict: ACCEPTED

input
3 6
1 2
3 3
1 1
2 3
...

correct output
3
1
3
3
3
...

user output
3
1
3
3
3
...

Test 14

Verdict: ACCEPTED

input
4 8
4 3
1 4
4 4
4 1
...

correct output
1
4
1
1
1
...

user output
1
4
1
1
1
...

Test 15

Verdict: ACCEPTED

input
5 10
3 5
4 4
5 2
1 1
...

correct output
5
5
1
5
5
...

user output
5
5
1
5
5
...

Test 16

Verdict: ACCEPTED

input
6 12
6 5
2 4
1 1
3 5
...

correct output
1
3
6
2
3
...

user output
1
3
6
2
3
...

Test 17

Verdict: ACCEPTED

input
7 14
2 3
4 1
4 3
1 1
...

correct output
7
7
7
7
7
...

user output
7
7
7
7
7
...

Test 18

Verdict: ACCEPTED

input
8 16
3 2
5 7
2 8
1 7
...

correct output
8
8
4
8
8
...

user output
8
8
4
8
8
...

Test 19

Verdict: ACCEPTED

input
9 18
6 1
5 4
8 3
2 9
...

correct output
3
9
9
9
9
...

user output
3
9
9
9
9
...

Test 20

Verdict: ACCEPTED

input
10 20
1 5
8 5
3 8
2 3
...

correct output
10
5
10
5
5
...

user output
10
5
10
5
5
...

Test 21

Verdict:

input
100000 1000
54883 59286
71521 84428
60278 85796
54490 84727
...

correct output
100000
100000
50000
10000
100000
...

user output
21743
-20103
14373
2117
-1375
...
Truncated

Test 22

Verdict:

input
2000000 1000
834232 1994819
1440974 1865535
229 256307
604802 1998532
...

correct output
250000
1000000
2000000
1000000
1000000
...

user output
302
8
2000000
-1303
-2136
...
Truncated

Test 23

Verdict:

input
30000000 1000
13094992 5558892
778688 27978585
16508968 28464840
13074794 14559312
...

correct output
1875000
468750
3750000
15000000
30000000
...

user output
9
6
-6
62
18
...
Truncated

Test 24

Verdict:

input
400000000 1000
236565899 30376105
304147174 360755367
124942637 52110229
219398785 244517353
...

correct output
400000000
200000000
400000000
80000000
400000000
...

user output
3
0
-5
0
4
...
Truncated

Test 25

Verdict:

input
500000000 1000
483517462 293793079
92715097 459357998
383763915 326973498
374590311 320810546
...

correct output
250000000
500000000
100000000
500000000
62500000
...

user output
0
-6
0
-4
0
...
Truncated

Test 26

Verdict:

input
600000000 1000
136207631 33856688
534252396 510075127
126836001 223176868
563629114 299672870
...

correct output
600000000
50000000
200000000
300000000
600000000
...

user output
7
0
-3
-1
-12
...
Truncated

Test 27

Verdict:

input
700000000 1000
639134189 678229794
237640401 149898916
587858706 45995240
29847608 264934632
...

correct output
700000000
700000000
350000000
12500000
100000000
...

user output
1
4
-1
1
-2
...
Truncated

Test 28

Verdict:

input
800000000 1000
65548324 195282779
669945145 273995058
376590657 621451858
391344456 264580953
...

correct output
200000000
160000000
800000000
100000000
50000000
...

user output
-3
0
0
0
0
...
Truncated

Test 29

Verdict:

input
900000000 1000
11934038 257096283
405355767 570001955
876668629 249890139
453495728 12239373
...

correct output
450000000
300000000
900000000
56250000
225000000
...

user output
-40
0
0
0
0
...
Truncated

Test 30

Verdict:

input
1000000000 1000
11139168 391337048
538883744 535937150
532332526 8099343
143698367 339543270
...

correct output
31250000
31250000
500000000
1000000000
31250000
...

user output
-4
0
-1
8
0
...
Truncated

Test 31

Verdict:

input
636562060 1000
511952489 604348961
431474828 614141397
390042572 606486418
303263917 446364281
...

correct output
636562060
159140515
159140515
20534260
636562060
...

user output
2
0
0
0
4
...
Truncated

Test 32

Verdict:

input
773442532 1000
98253 110058063
259701699 126062352
202798887 79318250
340660250 159996304
...

correct output
773442532
773442532
773442532
386721266
773442532
...

user output
-21396
8
4
1
1
...
Truncated

Test 33

Verdict:

input
198730372 1000
5302491 190520836
112418208 193832000
89033117 99141977
85974570 65556834
...

correct output
198730372
49682593
198730372
99365186
99365186
...

user output
14
0
-16
2
12
...
Truncated

Test 34

Verdict:

input
75940263 1000
54311996 64420602
22311186 9305398
39178355 43663813
68485322 33520835
...

correct output
397593
25313421
75940263
75940263
75940263
...

user output
0
0
13
4
-20
...
Truncated

Test 35

Verdict:

input
967034924 1000
587586158 185430194
918715995 767527830
653946995 749180621
641621091 232024335
...

correct output
483517462
967034924
967034924
967034924
241758731
...

user output
0
0
-2
1
0
...
Truncated

Test 36

Verdict:

input
59249204 1000
51941206 49590638
12331278 21697751
54797275 58426170
29134863 5358034
...

correct output
29624602
29624602
59249204
59249204
59249204
...

user output
-20
61
5
46
54
...
Truncated

Test 37

Verdict:

input
356460601 1000
74949458 293929353
22997620 14923804
132467316 38531826
352555547 212977432
...

correct output
356460601
356460601
356460601
356460601
356460601
...

user output
-22
65
13
4
-52
...
Truncated

Test 38

Verdict:

input
244103474 100000
197042690 80586782
110761958 182779959
115101311 77817928
136048363 66665685
...

correct output
122051737
122051737
244103474
244103474
122051737
...

user output
-2
5
15
8
-4
...
Truncated

Test 39

Verdict:

input
11934038 1000
11587328 2864583
10398781 4516499
6350997 9767896
2784292 5052878
...

correct output
5967019
11934038
11934038
5967019
5967019
...

user output
-62
63
-39
355
-1187
...
Truncated

Test 40

Verdict:

input
391337048 100000
215553498 214374860
212933011 3239737
57479347 135817308
61036250 5721761
...

correct output
195668524
391337048
391337048
195668524
97834262
...

user output
3
0
34
-14
-3
...
Truncated

Test 41

Verdict:

input
320792352 1000
6856072 163403660
209346034 146364209
247391400 274848623
164697794 192719062
...

correct output
40099044
160396176
703492
160396176
106930784
...

user output
0
0
0
0
7
...
Truncated

Test 42

Verdict:

input
73343920 1000
1442165 49223311
34301870 14374488
53682199 68592328
31116565 7788343
...

correct output
14668784
7334392
73343920
14668784
73343920
...

user output
259
1
36
-10
2
...
Truncated

Test 43

Verdict:

input
479126951 1000
397311153 468896160
141366175 46404049
286549153 388480761
7824874 188161591
...

correct output
479126951
479126951
479126951
479126951
479126951
...

user output
0
10
-2
128
-79
...
Truncated

Test 44

Verdict:

input
652127789 1000
170038626 615206830
590041554 639221905
128243055 543015584
324591612 538060272
...

correct output
652127789
652127789
652127789
652127789
652127789
...

user output
9
-1
-1
5
-1
...
Truncated

Test 45

Verdict:

input
989875543 1000
830179652 707687014
934614610 393292735
8640346 159993019
332576424 216128931
...

correct output
989875543
989875543
989875543
989875543
989875543
...

user output
-1
1
-212
-2
0
...
Truncated

Test 46

Verdict:

input
873575358 1000
192088036 634962594
58372062 119170657
388198952 295709490
569083414 26793118
...

correct output
436787679
145595893
436787679
10157853
145595893
...

user output
-2
1
-1
0
0
...
Truncated

Test 47

Verdict:

input
350744380 1000
187247456 19931185
197103729 110458251
16321574 49819680
129109880 252137537
...

correct output
87686095
350744380
175372190
17537219
17537219
...

user output
-1
-5
-43
0
-1
...
Truncated

Test 48

Verdict:

input
195182397 1000
103584216 164816216
37389796 173529335
13255901 157512328
153639856 80086158
...

correct output
65060799
195182397
195182397
195182397
65060799
...

user output
0
52
12
-8
2
...
Truncated

Test 49

Verdict:

input
81615941 1000
41748187 35732930
72568551 20198635
15019189 75027737
70390638 16847208
...

correct output
81615941
7419631
81615941
81615941
81615941
...

user output
-5
0
6
-23
-5
...
Truncated

Test 50

Verdict:

input
462211740 100000
363282517 196968602
117843390 341358936
65919011 123064016
158172463 322424470
...

correct output
462211740
5135686
462211740
462211740
231105870
...

user output
3
0
-2
-1
18
...
Truncated

Test 51

Verdict:

input
952851063 1000
875998819 667318630
38536147 687576518
742769042 406605561
722483998 556746891
...

correct output
952851063
952851063
952851063
952851063
952851063
...

user output
2
-2
-2
0
-27
...
Truncated

Test 52

Verdict:

input
858211636 100000
248343308 583979982
619305380 31050621
18568217 817417300
176886310 599296532
...

correct output
214552909
214552909
858211636
429105818
858211636
...

user output
0
0
88
0
5
...
Truncated

Test 53

Verdict:

input
753727010 1000
413760880 627500429
361239419 547590421
738031717 670044259
147026654 727317481
...

correct output
75372701
753727010
753727010
376863505
753727010
...

user output
0
-3
-1
0
2
...
Truncated

Test 54

Verdict:

input
718437562 1000
158903900 657524927
671457583 242576186
492983549 189876521
379600966 589460284
...

correct output
359218781
718437562
718437562
359218781
359218781
...

user output
6
-1
1
1
4
...
Truncated

Test 55

Verdict:

input
316145889 1000
231106260 17462220
104892428 72706295
119286558 168170985
244430219 260070478
...

correct output
105381963
316145889
35127321
316145889
105381963
...

user output
-1
5
-1
-4
-4
...
Truncated

Test 56

Verdict:

input
747395152 1000
500172076 372158084
239520832 84889368
159696538 155327109
353132323 129379927
...

correct output
186848788
46712197
373697576
747395152
46712197
...

user output
0
0
-4
-1
0
...
Truncated

Test 57

Verdict:

input
765697360 1000
446153883 253331338
659962663 480469218
677935454 85332598
747807123 93200007
...

correct output
765697360
765697360
382848680
765697360
382848680
...

user output
-1
-1
1
-2
-4
...
Truncated

Test 58

Verdict:

input
516256687 1000
437326314 491194180
394813416 251232863
466005669 206474116
205825988 157757970
...

correct output
516256687
516256687
516256687
516256687
516256687
...

user output
-3
3
0
6
-2
...
Truncated

Test 59

Verdict:

input
183419903 1000
104804598 53787839
23336070 30671162
74245488 74147577
145899705 58594803
...

correct output
183419903
183419903
183419903
183419903
183419903
...

user output
19
-12
2
-4
-6
...
Truncated

Test 60

Verdict:

input
859561821 1000
305915452 372050560
78658441 819519705
526436955 486103389
357871847 582286838
...

correct output
859561821
859561821
31835623
859561821
859561821
...

user output
-2
12
0
3
-4
...
Truncated