CSES - KILO 2018 1/5 - Results
Submission details
Task:Word Worries
Sender:Olli
Submission time:2018-09-06 18:10:11 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.02 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.03 sdetails
#4ACCEPTED0.03 sdetails
#5ACCEPTED0.01 sdetails
#6ACCEPTED0.01 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.03 sdetails
#9ACCEPTED0.06 sdetails
#10ACCEPTED0.07 sdetails
#11ACCEPTED0.10 sdetails
#12ACCEPTED0.09 sdetails
#13ACCEPTED0.09 sdetails
#14ACCEPTED0.10 sdetails
#15ACCEPTED0.08 sdetails
#16ACCEPTED0.06 sdetails
#17ACCEPTED0.07 sdetails
#18ACCEPTED0.09 sdetails
#19ACCEPTED0.08 sdetails
#20ACCEPTED0.07 sdetails

Compiler report

input/code.cpp: In function 'int comp(std::__cxx11::string, std::__cxx11::string)':
input/code.cpp:13:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int j = 0; j < a.length(); ++j) {
                 ~~^~~~~~~~~~~~

Code

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


const int N = 1e5 + 5;

vector<string> v;

int comp(string a, string b) {
	for(int j = 0; j < a.length(); ++j) {
		int k = (int) a[j];
		int n = (int) b[j];
		if(k < n) {
			return 1;
		} else if (k > n) {
			return -1;
		}
	}
	return 0;
}

int main() {

	int n, m;
	cin >> n >> m;
	for(int i = 1; i <= n; ++i) {
		string s;
		cin >> s;
		v.push_back(s);
	}
	sort(v.begin(), v.end());

	int ans = 0;
	int k = 0;
	for(int i = 0; i < n; ++i) {
		if(v[i] == v[0]) {
			++ans;
			k = i;
		} else {
			break;
		}
	}

	string a = v[0];

	for(int j = 0; j < m; ++j) {
		if(a[j] != 'z') {
			a[j] = 'z';
			break;
		}
	}


	for(int i = k + 1; i < n; ++i) {
		//Check if v[i] can be first
		if(k == 0) {
			if(comp(a, v[i]) != 1) {
				if(comp(v[i], v[k+1]) == 0) {
					++ans;
					continue;
				}
			}
		}

		string b = v[i];
		for(int j = 0; j < m; ++j) {
			if(b[j] != 'a') {
				b[j] = 'a';
				break;
			}
		}


		if(comp(b, v[0]) != -1) {
			++ans;
		}
	}

	cout << ans << "\n";

}

Test details

Test 1

Verdict: ACCEPTED

input
4 2
aa
bb
za
zz

correct output
3

user output
3

Test 2

Verdict: ACCEPTED

input
1 1
a

correct output
1

user output
1

Test 3

Verdict: ACCEPTED

input
2 1
a
a

correct output
2

user output
2

Test 4

Verdict: ACCEPTED

input
3 10
aaaaaaaaaa
aaaaaaaaab
aaaaaaaabb

correct output
2

user output
2

Test 5

Verdict: ACCEPTED

input
2 2
bb
zz

correct output
2

user output
2

Test 6

Verdict: ACCEPTED

input
26 1
a
b
c
d
...

correct output
26

user output
26

Test 7

Verdict: ACCEPTED

input
676 2
aa
ab
ac
ad
...

correct output
51

user output
51

Test 8

Verdict: ACCEPTED

input
17576 3
aaa
aab
aac
aad
...

correct output
76

user output
76

Test 9

Verdict: ACCEPTED

input
59049 10
aaaaaaaaaa
aaaaaaaaab
aaaaaaaaac
aaaaaaaaba
...

correct output
21

user output
21

Test 10

Verdict: ACCEPTED

input
100000 10
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
...

correct output
100000

user output
100000

Test 11

Verdict: ACCEPTED

input
100000 10
bbcacccbbb
babccccaaa
cacababbbc
cabcbabbac
...

correct output
33

user output
33

Test 12

Verdict: ACCEPTED

input
100000 10
bbbabacbbc
baaabaccab
caccbabacb
caccbacaaa
...

correct output
34

user output
34

Test 13

Verdict: ACCEPTED

input
100000 10
mounucjzsy
zzdwsalxux
itasczrpmj
xyxuntyyuq
...

correct output
3

user output
3

Test 14

Verdict: ACCEPTED

input
100000 10
poohklgguz
poetpdbthy
gtresaphti
nkydtirzrl
...

correct output
77

user output
77

Test 15

Verdict: ACCEPTED

input
100000 7
aaacaca
bcabcbc
accbccb
bcaacbc
...

correct output
685

user output
685

Test 16

Verdict: ACCEPTED

input
100000 1
h
w
e
q
...

correct output
100000

user output
100000

Test 17

Verdict: ACCEPTED

input
100000 2
li
bf
fl
ji
...

correct output
15836

user output
15836

Test 18

Verdict: ACCEPTED

input
100000 6
macdpa
cfcobd
eknabl
dadhan
...

correct output
61

user output
61

Test 19

Verdict: ACCEPTED

input
100000 4
bubq
xvga
owhf
ciib
...

correct output
19

user output
19

Test 20

Verdict: ACCEPTED

input
100000 4
vwvw
wxxx
vvvx
wvxv
...

correct output
100000

user output
100000