CSES - KILO 2017 5/5 - Results
Submission details
Task:Coloring
Sender:Ke Bi
Submission time:2017-10-03 16:45:05 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.07 sdetails
#4ACCEPTED0.06 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.04 sdetails
#10ACCEPTED0.07 sdetails
#11ACCEPTED0.64 sdetails
#12ACCEPTED0.12 sdetails
#13--details
#14--details
#15--details
#16ACCEPTED1.87 sdetails
#17--details
#18--details
#19ACCEPTED1.63 sdetails
#20ACCEPTED1.26 sdetails
#21--details
#22ACCEPTED1.36 sdetails
#23ACCEPTED0.79 sdetails
#24--details
#25--details
#26ACCEPTED0.15 sdetails
#27--details
#28--details
#29--details
#30--details
#31ACCEPTED0.07 sdetails
#32ACCEPTED0.10 sdetails
#33ACCEPTED0.32 sdetails
#34ACCEPTED0.20 sdetails
#35ACCEPTED0.04 sdetails
#36ACCEPTED0.08 sdetails
#37ACCEPTED0.08 sdetails
#38ACCEPTED0.22 sdetails
#39ACCEPTED0.15 sdetails
#40ACCEPTED0.10 sdetails
#41ACCEPTED0.04 sdetails
#42ACCEPTED0.14 sdetails
#43ACCEPTED0.20 sdetails
#44ACCEPTED0.10 sdetails
#45ACCEPTED0.47 sdetails
#46ACCEPTED0.41 sdetails
#47ACCEPTED0.13 sdetails
#48ACCEPTED0.18 sdetails
#49ACCEPTED0.23 sdetails
#50ACCEPTED0.09 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:37:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(j=0;j<a[t].size();j++)
                       ^
input/code.cpp:44:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(j=0;j<a[r[i]].size();j++)
                          ^
input/code.cpp:20:28: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
  fread(buf,1,BUFSIZE,stdin);
                            ^

Code

#include<iostream>
#include<stdio.h>
#include<vector>
#define BUFSIZE 100000000
char buf[BUFSIZE],*pt=buf;
#define scan(t)\
{\
	t=0;\
	while(*pt<'0'||*pt>'9')\
		pt++;\
	while(((*pt)>='0'&&(*pt)<='9'))\
	t=t*10+*pt++-'0';\
}
using namespace std;
int n,m,cnt[500050],c[500050],h[500050],v[500050];
int x,y,i,j,ans,mx,t;
vector<int>a[500050],r;
int main()
{
	fread(buf,1,BUFSIZE,stdin);
	scan(n);
	scan(m);
	while(m--)
	{
		scan(x);
		scan(y);
		a[x].push_back(y);
		a[y].push_back(x);
	}
	for(i=1;i<=n;i++)
	{
		mx=-1;
		for(j=1;j<=n;j++)
			if(!v[j]&&cnt[j]>mx)
				mx=cnt[t=j];
		v[t]=1;
		for(j=0;j<a[t].size();j++)
			cnt[a[t][j]]++;
		r.push_back(t);
	}
	c[r[0]]=1;
	for(i=1;i<n;i++)
	{
		for(j=0;j<a[r[i]].size();j++)
			h[c[a[r[i]][j]]]=i;
		for(j=1;j<=n;j++)
			if(h[j]!=i)
				break;
		c[r[i]]=j;
	}
	for(i=1;i<=n;i++)
		ans=max(ans,c[i]);
	printf("%d\n",ans);
	for (int i = 1; i <= n; i++) {
		printf("%d%c", c[i], i == n ? '\n' : ' ');
	}
	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
2 1
1 2

correct output
2
1 2

user output
2
1 2

Test 2

Verdict: ACCEPTED

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

correct output
3
3 2 3 1

user output
3
1 2 1 3

Test 3

Verdict: ACCEPTED

input
2 1
2 1

correct output
2
2 1

user output
2
1 2

Test 4

Verdict: ACCEPTED

input
4 2
4 1
4 2

correct output
2
2 2 1 1

user output
2
1 1 1 2

Test 5

Verdict: ACCEPTED

input
3 3
2 3
2 1
3 1

correct output
3
3 1 2

user output
3
1 2 3

Test 6

Verdict: ACCEPTED

input
3 3
2 3
2 1
3 1

correct output
3
3 1 2

user output
3
1 2 3

Test 7

Verdict: ACCEPTED

input
2 1
1 2

correct output
2
1 2

user output
2
1 2

Test 8

Verdict: ACCEPTED

input
6 3
3 2
4 5
1 6

correct output
2
1 2 1 1 2 2

user output
2
1 1 2 1 2 2

Test 9

Verdict: ACCEPTED

input
3 3
1 3
1 2
3 2

correct output
3
1 3 2

user output
3
1 2 3

Test 10

Verdict: ACCEPTED

input
3 2
1 3
1 2

correct output
2
1 2 2

user output
2
1 2 2

Test 11

Verdict: ACCEPTED

input
13794 77893
6985 6447
6985 3470
6985 3433
6985 4156
...

correct output
7
5 7 6 6 4 6 2 6 1 7 3 4 1 4 1 ...

user output
7
1 3 6 6 2 3 3 1 1 4 1 4 1 4 7 ...

Test 12

Verdict: ACCEPTED

input
3786 17640
3578 1610
1445 849
1445 2713
1445 1015
...

correct output
6
6 6 1 1 5 5 5 1 5 5 6 2 3 2 1 ...

user output
6
1 2 1 4 5 4 5 1 2 5 3 2 1 4 2 ...

Test 13

Verdict:

input
55109 183490
42108 14205
42108 11306
42108 7732
42108 31683
...

correct output
5
2 1 4 1 2 2 3 4 1 5 3 1 2 1 4 ...

user output
(empty)

Test 14

Verdict:

input
30960 72203
9023 19362
9023 30311
9023 19946
9023 4668
...

correct output
4
2 2 4 1 1 1 2 1 3 1 3 2 2 3 1 ...

user output
(empty)

Test 15

Verdict:

input
40473 202109
28082 11520
28082 27997
28082 32841
28082 30658
...

correct output
7
3 3 2 2 1 4 6 3 1 4 2 7 5 5 6 ...

user output
(empty)

Test 16

Verdict: ACCEPTED

input
22645 90849
4340 19302
4340 18273
19302 18273
6145 10724
...

correct output
7
2 5 1 4 4 2 6 6 6 7 3 4 5 6 5 ...

user output
7
1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 ...

Test 17

Verdict:

input
104458 347274
74164 56731
74164 103687
74164 531
74164 11407
...

correct output
5
5 4 5 5 3 1 2 5 1 4 2 3 5 2 2 ...

user output
(empty)

Test 18

Verdict:

input
82811 412177
41794 7339
41794 35461
41794 55928
41794 74009
...

correct output
6
4 2 5 4 3 1 3 6 3 6 1 1 4 5 6 ...

user output
(empty)

Test 19

Verdict: ACCEPTED

input
22073 80302
562 11587
562 12309
562 6180
562 16773
...

correct output
5
3 1 1 3 2 5 2 3 2 2 4 1 1 4 1 ...

user output
5
1 1 1 2 1 2 1 2 3 1 1 1 3 1 2 ...

Test 20

Verdict: ACCEPTED

input
20151 53676
19899 6564
19899 10875
19899 12343
19899 19343
...

correct output
4
1 3 3 2 2 1 1 4 4 1 3 4 2 4 2 ...

user output
4
1 1 1 1 2 1 2 3 1 2 1 2 3 1 1 ...

Test 21

Verdict:

input
87689 349330
52362 42317
52362 56383
52362 24481
52362 11351
...

correct output
5
3 5 4 1 1 5 3 5 1 2 3 2 1 4 1 ...

user output
(empty)

Test 22

Verdict: ACCEPTED

input
20973 55737
14365 12374
14365 20735
14365 16083
14365 7543
...

correct output
4
4 4 3 4 4 4 2 4 1 3 1 1 3 4 3 ...

user output
4
1 1 1 1 1 3 2 1 3 1 3 3 1 1 1 ...

Test 23

Verdict: ACCEPTED

input
14512 82082
11536 6691
11536 8693
11536 1120
11536 3076
...

correct output
7
1 3 4 1 5 1 4 6 7 7 2 3 7 4 2 ...

user output
7
1 4 1 6 1 6 2 4 3 2 1 4 2 1 6 ...

Test 24

Verdict:

input
199586 399178
181845 140022
181845 111958
181845 101387
181845 133515
...

correct output
4
2 1 1 3 3 2 2 4 3 3 3 3 4 4 2 ...

user output
(empty)

Test 25

Verdict:

input
177400 354950
39563 159240
39563 85409
39563 140869
39563 141648
...

correct output
4
1 1 1 3 4 2 2 2 2 1 1 2 4 3 4 ...

user output
(empty)

Test 26

Verdict: ACCEPTED

input
4612 22242
4276 3280
4276 4309
4276 1680
4276 2574
...

correct output
6
6 3 5 2 6 3 3 6 2 3 1 2 2 2 3 ...

user output
6
1 1 1 1 1 1 1 1 2 6 1 1 4 1 5 ...

Test 27

Verdict:

input
47422 173573
28259 36080
28259 30483
28259 22898
28259 7661
...

correct output
6
4 5 6 2 6 3 1 6 4 2 6 2 1 3 4 ...

user output
(empty)

Test 28

Verdict:

input
69212 276179
5283 26592
5283 44635
5283 51917
5283 69140
...

correct output
7
7 1 7 2 1 4 5 7 2 1 4 1 1 3 7 ...

user output
(empty)

Test 29

Verdict:

input
80389 240682
53944 44594
53944 14653
53944 31020
53944 43096
...

correct output
4
4 4 2 3 3 2 1 2 3 3 3 2 4 3 3 ...

user output
(empty)

Test 30

Verdict:

input
56041 280185
44140 5624
44140 17649
44140 31376
44140 8175
...

correct output
6
3 6 3 2 2 1 3 5 2 3 4 3 6 3 5 ...

user output
(empty)

Test 31

Verdict: ACCEPTED

input
563 77028
348 227
348 373
348 518
348 282
...

correct output
193
59 8 88 63 63 155 106 91 181 1...

user output
193
1 1 1 2 2 2 5 37 6 6 15 9 3 6 ...

Test 32

Verdict: ACCEPTED

input
2836 81623
2230 1248
1248 770
1248 2421
1248 2559
...

correct output
34
21 31 22 20 13 15 29 7 21 11 2...

user output
34
1 4 3 5 2 1 1 2 3 3 3 3 1 7 9 ...

Test 33

Verdict: ACCEPTED

input
8845 476380
1312 1029
1312 228
1312 7927
1312 6998
...

correct output
77
70 21 17 34 70 41 25 71 75 51 ...

user output
77
1 2 1 2 1 1 1 1 8 3 3 2 3 1 1 ...

Test 34

Verdict: ACCEPTED

input
5282 269720
3357 4982
3357 1575
3357 2987
3357 1839
...

correct output
91
8 8 28 84 33 2 47 39 57 37 38 ...

user output
91
1 1 1 1 1 1 1 2 1 1 1 1 2 1 2 ...

Test 35

Verdict: ACCEPTED

input
357 30411
162 246
246 46
246 75
246 48
...

correct output
101
76 79 67 68 18 7 79 83 27 73 1...

user output
101
1 2 3 95 4 44 2 5 60 58 4 95 1...

Test 36

Verdict: ACCEPTED

input
1899 140514
1618 177
1618 1196
1618 1788
1618 1577
...

correct output
153
13 113 148 25 13 72 134 14 100...

user output
153
1 1 1 1 1 1 1 1 2 1 1 1 2 1 2 ...

Test 37

Verdict: ACCEPTED

input
3204 108014
118 2289
118 2744
118 2511
118 549
...

correct output
65
54 47 36 14 8 51 63 14 34 50 3...

user output
65
1 1 1 1 2 2 1 1 1 3 1 1 2 1 1 ...

Test 38

Verdict: ACCEPTED

input
5821 241726
3793 2038
3793 4690
2038 4690
2038 3784
...

correct output
62
26 18 53 3 38 59 50 14 42 1 32...

user output
62
1 3 1 1 4 1 3 1 1 3 1 1 2 11 1...

Test 39

Verdict: ACCEPTED

input
4678 436484
2218 2359
2218 1050
2218 1624
2218 3294
...

correct output
189
70 168 160 159 49 98 147 46 17...

user output
189
1 1 2 1 1 3 1 1 1 1 1 2 1 1 1 ...

Test 40

Verdict: ACCEPTED

input
3302 144229
3001 220
3001 2674
3001 39
3001 3250
...

correct output
85
77 81 14 66 31 82 51 84 47 78 ...

user output
85
1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 ...

Test 41

Verdict: ACCEPTED

input
109 2800
28 13
48 41
48 35
48 5
...

correct output
55
12 19 54 29 4 41 5 7 10 21 20 ...

user output
55
1 2 1 2 1 8 2 3 1 3 4 10 1 10 ...

Test 42

Verdict: ACCEPTED

input
4215 363700
2937 2900
2455 3174
2455 2633
2455 473
...

correct output
98
77 35 72 27 66 96 29 87 60 95 ...

user output
98
1 9 3 4 21 2 16 3 3 4 3 1 9 14...

Test 43

Verdict: ACCEPTED

input
6155 290517
3343 4997
3343 3824
3343 4737
3343 2496
...

correct output
93
37 41 58 43 10 23 31 48 90 78 ...

user output
93
1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 ...

Test 44

Verdict: ACCEPTED

input
3799 90298
616 698
616 405
616 1711
616 2390
...

correct output
30
16 4 10 25 9 20 1 19 11 24 21 ...

user output
30
1 5 1 1 1 2 3 10 1 3 1 1 7 1 2...

Test 45

Verdict: ACCEPTED

input
11286 357366
3663 6134
3663 9835
3663 9432
3663 2913
...

correct output
50
32 5 48 27 9 24 50 36 44 29 37...

user output
50
1 1 1 1 5 1 1 1 1 1 1 3 1 1 1 ...

Test 46

Verdict: ACCEPTED

input
8621 482274
6328 485
6328 5699
6328 8256
6328 7193
...

correct output
93
68 5 17 23 9 68 63 71 80 59 9 ...

user output
93
1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 ...

Test 47

Verdict: ACCEPTED

input
4442 170116
4300 2939
4300 2772
4300 3349
4300 1116
...

correct output
65
18 40 6 17 51 60 24 21 11 62 2...

user output
65
1 1 1 1 1 1 1 2 1 2 1 2 1 3 1 ...

Test 48

Verdict: ACCEPTED

input
5273 465102
2688 1460
2688 533
2688 812
2688 3196
...

correct output
108
42 18 15 26 42 70 37 77 63 101...

user output
108
1 1 9 2 4 3 3 2 1 1 7 1 1 2 1 ...

Test 49

Verdict: ACCEPTED

input
7184 246521
5000 1440
1960 5003
1960 5859
1960 1886
...

correct output
47
19 1 28 20 42 13 11 38 5 37 8 ...

user output
47
1 1 1 1 8 1 1 14 1 1 2 2 2 2 1...

Test 50

Verdict: ACCEPTED

input
2320 159706
101 1042
101 1270
101 95
101 939
...

correct output
98
24 4 20 67 30 35 94 95 9 76 51...

user output
98
1 1 2 2 1 2 6 2 3 5 12 3 1 3 1...