Code Submission Evaluation System Login

Datatähti 2019 alku

Start:2018-10-01 00:00:00
End:2018-10-15 00:00:00
 

Tasks | Messages | Scoreboard | Statistics


CSES - Datatähti 2019 alku - Results
History
2018-10-05 19:58:560
2018-10-04 00:03:450
2018-10-02 20:35:44100
2018-10-02 19:40:0048
2018-10-02 19:38:3848
2018-10-02 19:34:1048
2018-10-02 19:32:5625
2018-10-02 18:43:0048
2018-10-02 00:14:550
2018-10-02 00:13:580
2018-10-02 00:09:530
2018-10-01 23:42:5948
2018-10-01 18:53:5048
2018-10-01 18:52:4548
2018-10-01 18:51:0448
2018-10-01 18:39:350
2018-10-01 18:36:5648
2018-10-01 18:20:5323
Task:Kolikot
Sender:Nanohenry
Submission time:2018-10-05 19:58:56
Language:C++
Status:READY
Score:0

Feedback

groupverdictscore
#1WRONG ANSWER0
#2WRONG ANSWER0
#3WRONG ANSWER0

Test results

testverdicttime (s)group
#1WRONG ANSWER0.01 / 1.001details
#2WRONG ANSWER0.01 / 1.001details
#3WRONG ANSWER0.01 / 1.001details
#4WRONG ANSWER0.01 / 1.001details
#5WRONG ANSWER0.01 / 1.001details
#6WRONG ANSWER0.02 / 1.001details
#7WRONG ANSWER0.01 / 1.001details
#8WRONG ANSWER0.01 / 1.001details
#9WRONG ANSWER0.02 / 1.001details
#10WRONG ANSWER0.02 / 1.001details
#11WRONG ANSWER0.02 / 1.002details
#12WRONG ANSWER0.02 / 1.002details
#13WRONG ANSWER0.01 / 1.002details
#14WRONG ANSWER0.02 / 1.002details
#15WRONG ANSWER0.02 / 1.002details
#16WRONG ANSWER0.02 / 1.002details
#17WRONG ANSWER0.01 / 1.002details
#18WRONG ANSWER0.01 / 1.002details
#19WRONG ANSWER0.03 / 1.002details
#20WRONG ANSWER0.01 / 1.002details
#21WRONG ANSWER0.02 / 1.003details
#22WRONG ANSWER0.02 / 1.003details
#23WRONG ANSWER0.02 / 1.003details
#24WRONG ANSWER0.01 / 1.003details
#25WRONG ANSWER0.02 / 1.003details
#26WRONG ANSWER0.01 / 1.003details
#27WRONG ANSWER0.01 / 1.003details
#28WRONG ANSWER0.01 / 1.003details
#29WRONG ANSWER0.01 / 1.003details
#30WRONG ANSWER0.01 / 1.003details

Compiler report

input/code.cpp: In function 'void search(std::__cxx11::string)':
input/code.cpp:16:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (x == t.size()) {
         ~~^~~~~~~~~~~
input/code.cpp:19:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (zi > 10 * t.size()) {
         ~~~^~~~~~~~~~~~~~~
input/code.cpp:25:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (long i = 0; i <= f.size() - s.size(); i++) {
                      ~~^~~~~~~~~~~~~~~~~~~~~~
input/code.cpp:28:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (long j = 0; j < s.size(); j++) {
                          ~~^~~~~~~~~~
input/code.cpp:34:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 if (c == s.size()) {
                     ~~^~~~~~~~~~~
input/code.cpp:52:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (long r = k; r < k + s.size(); r++) {
                      ~~^~~~~~~~~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:68:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (long i = 0; i < s.size(); i++) { // first do "some" checks
                      ~~^~~~~~~~~~
input/code.cpp:71:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (long i = 0; i < t.size(); i++) {
                      ~~^~~~~~~~~~
input/code.cpp:83:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for (long i = 1; i <= t.size() / s.size(); i++) {
                              ~~^~~~~~~~~~~~~~~~~~~~~~
input/code.cpp:89:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for (long i = 0; i <= t.size() - s.size(); i += s.size()) {
                              ~~^~~~~~~~~~~~~~~~~~~~~~

Code

#include <iostream>
#include <string>
#include <vector>
#include <set>

using namespace std;

string t, s;
long z[100000];
long zi = 0;
set<char> tc, sc;
bool m;
long b, k, c, q, x;

void search(string f) {
    if (x == t.size()) {
        return;
    }
    if (zi > 10 * t.size()) {
        m = 1;
        return;
    }
    b = f.size() + 1;
    k = -1;
    for (long i = 0; i <= f.size() - s.size(); i++) {
        c = 0;
        q = 0;
        for (long j = 0; j < s.size(); j++) {
            if (f[i + j] == s[j] || f[i + j] == '?') {
                if (f[i + j] == '?') {
                    q++;
                }
                c++;
                if (c == s.size()) {
                    if (q < b) {
                        b = q;
                        k = i;
                    }
                    c = 0;
                    q = 0;
                }
            } else {
                c = 0;
                q = 0;
            }
        }
    }
    if (k == -1) {
        m = 1;
        return;
    }
    for (long r = k; r < k + s.size(); r++) {
        if (f[r] != '?') {
            x++;
        }
        f[r] = '?';
    }
    z[zi++] = k;
    search(f);
}

int main() {
    cin >> t >> s;
    if (t == s) {
        cout << "1\n1\n";
        return 0;
    }
    for (long i = 0; i < s.size(); i++) { // first do "some" checks
        sc.insert(s[i]);
    }
    for (long i = 0; i < t.size(); i++) {
        tc.insert(t[i]);
    }
    if (s.size() > t.size() || s[0] != t[0] || s[s.size() - 1] != t[t.size() - 1]) {
        m = 1;
    }
    if (tc.size() != sc.size()) {
        m = 1;
    }
    if (!m && tc.size() == 1 && sc.size() == 1) {
        if (s.size() == 1) {
            cout << t.size() / s.size() << '\n';
            for (long i = 1; i <= t.size() / s.size(); i++) {
                cout << i << ' ';
            }
            cout << '\n';
        } else {
            cout << t.size() / s.size() << '\n';
            for (long i = 0; i <= t.size() - s.size(); i += s.size()) {
                cout << i + 1 << ' ';
            }
            if (t.size() % s.size() != 0) {
                cout << t.size() - s.size() + 1;
            }
            cout << '\n';
        }
    } else {
        if (!m) {
            search(t);
        }
        if (m) {
            cout << "-1\n";
        } else {
            cout << zi << '\n';
            for (long i = zi - 1; i >= 0; i--) {
                cout << z[i] + 1 << ' ';
            }
            cout << '\n';
        }
    }
    //system("pause");
}

Test details

Test 1

Group: 1

Verdict: WRONG ANSWER

input
1
view   save

correct output
1
1
view   save

user output
-1
view   save

Test 2

Group: 1

Verdict: WRONG ANSWER

input
2
view   save

correct output
1
2
view   save

user output
-1
view   save

Test 3

Group: 1

Verdict: WRONG ANSWER

input
3
view   save

correct output
2
1 2
view   save

user output
-1
view   save

Test 4

Group: 1

Verdict: WRONG ANSWER

input
4
view   save

correct output
2
1 3
view   save

user output
-1
view   save

Test 5

Group: 1

Verdict: WRONG ANSWER

input
5
view   save

correct output
2
1 4
view   save

user output
-1
view   save

Test 6

Group: 1

Verdict: WRONG ANSWER

input
6
view   save

correct output
3
1 2 3
view   save

user output
-1
view   save

Test 7

Group: 1

Verdict: WRONG ANSWER

input
7
view   save

correct output
3
1 2 4
view   save

user output
-1
view   save

Test 8

Group: 1

Verdict: WRONG ANSWER

input
8
view   save

correct output
3
1 2 5
view   save

user output
-1
view   save

Test 9

Group: 1

Verdict: WRONG ANSWER

input
9
view   save

correct output
3
1 2 6
view   save

user output
-1
view   save

Test 10

Group: 1

Verdict: WRONG ANSWER

input
10
view   save

correct output
4
1 2 3 4
view   save

user output
-1
view   save

Test 11

Group: 2

Verdict: WRONG ANSWER

input
11
view   save

correct output
4
1 2 3 5
view   save

user output
-1
view   save

Test 12

Group: 2

Verdict: WRONG ANSWER

input
54
view   save

correct output
9
1 2 3 4 5 6 7 8 18
view   save

user output
-1
view   save

Test 13

Group: 2

Verdict: WRONG ANSWER

input
55
view   save

correct output
10
1 2 3 4 5 6 7 8 9 10
view   save

user output
-1
view   save

Test 14

Group: 2

Verdict: WRONG ANSWER

input
56
view   save

correct output
10
1 2 3 4 5 6 7 8 9 11
view   save

user output
-1
view   save

Test 15

Group: 2

Verdict: WRONG ANSWER

input
123
view   save

correct output
15
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 16

Group: 2

Verdict: WRONG ANSWER

input
819
view   save

correct output
39
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 17

Group: 2

Verdict: WRONG ANSWER

input
820
view   save

correct output
40
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 18

Group: 2

Verdict: WRONG ANSWER

input
821
view   save

correct output
40
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 19

Group: 2

Verdict: WRONG ANSWER

input
999
view   save

correct output
44
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 20

Group: 2

Verdict: WRONG ANSWER

input
1000
view   save

correct output
44
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 21

Group: 3

Verdict: WRONG ANSWER

input
1274
view   save

correct output
49
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 22

Group: 3

Verdict: WRONG ANSWER

input
1275
view   save

correct output
50
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 23

Group: 3

Verdict: WRONG ANSWER

input
1276
view   save

correct output
50
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 24

Group: 3

Verdict: WRONG ANSWER

input
12345
view   save

correct output
156
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 25

Group: 3

Verdict: WRONG ANSWER

input
123456
view   save

correct output
496
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 26

Group: 3

Verdict: WRONG ANSWER

input
10000000
view   save

correct output
4471
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 27

Group: 3

Verdict: WRONG ANSWER

input
100000000
view   save

correct output
14141
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 28

Group: 3

Verdict: WRONG ANSWER

input
500000000
view   save

correct output
31622
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 29

Group: 3

Verdict: WRONG ANSWER

input
999999999
view   save

correct output
44720
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save

Test 30

Group: 3

Verdict: WRONG ANSWER

input
1000000000
view   save

correct output
44720
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

user output
-1
view   save