Code Submission Evaluation System Login

Datatähti 2016 alku

Start:2015-09-28 00:00:00
End:2015-10-12 00:00:00
 

Tasks | Scoreboard | Statistics


CSES - Datatähti 2016 alku - Results
History
2015-09-29 21:29:030
2015-09-29 16:10:46100
2015-09-29 15:32:2239
2015-09-29 15:27:5439
2015-09-29 15:10:4839
2015-09-29 15:10:1539
2015-09-29 15:09:1939
2015-09-29 14:27:4539
Task:Osajono
Sender:Razbit
Submission time:2015-09-29 21:29:03
Language:C++
Status:READY
Score:0

Feedback

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

Test results

testverdicttime (s)group
#1WRONG ANSWER0.05 / 1.001details
#2WRONG ANSWER0.05 / 1.001details
#3WRONG ANSWER0.05 / 1.001details
#4WRONG ANSWER0.05 / 1.001details
#5WRONG ANSWER0.06 / 1.001details
#6WRONG ANSWER0.06 / 1.002details
#7WRONG ANSWER0.06 / 1.002details
#8WRONG ANSWER0.05 / 1.002details
#9WRONG ANSWER0.05 / 1.002details
#10WRONG ANSWER0.05 / 1.002details
#11WRONG ANSWER0.06 / 1.003details
#12WRONG ANSWER0.05 / 1.003details
#13WRONG ANSWER0.05 / 1.003details
#14WRONG ANSWER0.05 / 1.003details
#15WRONG ANSWER0.06 / 1.003details

Code

/* kirjat.cpp -- Datatahti 2016 tehtava Kirjat
 *
 * Eetu "Razbit" Pesonen, 2015
 */

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

struct book
{
    int n;
    bool assigned;
    struct book* next;
};

int* uolevi;
int* maija;
int* kaaleppi;
struct book* buf;
int n; // number of books
int ndex; // first free book

struct book* next_book(struct book* book)
{
    struct book* ret = book->next;
    if (&buf[ndex] > ret)
        ret = &buf[ndex];
    while(ret && (ret->assigned != false))
        ret = ret->next;

    if (book == buf)
    {
        ndex = (&(*ret) - &(*book));
        //printf("Index: %i\n", ndex);
    }
    
    return ret;
}

// assign "book" to index i
bool assign(int i, struct book* book)
{
    //printf("Assigning %i to %i\n", book->n, i);
    
    if (uolevi[i] == book->n)
        return false;
    if (maija[i] == book->n)
        return false;
    
    kaaleppi[i] = book->n;
    book->assigned = true;

    /*for (int j = 0; j<n; j++)
    {
        printf("%i ", kaaleppi[j]);
    }
    printf("\n");*/

    if (i+1 == n)
        return true;
    
    bool ret = true;
    struct book* nx_book = buf;
    for(;;){
        if (ret == false)
        {
            nx_book = next_book(nx_book);
        }
        if (nx_book == buf && ret == true && buf->assigned == true)
        {
            nx_book = next_book(nx_book);
        }
        
        if (nx_book)
        {
            ret = assign(i+1, nx_book);
            
            if(ret)
                return true;
        }
        else
        {
            book->assigned = false;
            kaaleppi[i] = 0;
            return false;
        }
    }

    book->assigned = false;
    kaaleppi[i] = 0;
    return false;
    
}

int main()
{
    ndex = 0;
    cin >> n;

    uolevi = (int*)malloc(n*sizeof(int));
    maija = (int*)malloc(n*sizeof(int));
    kaaleppi = (int*)malloc(n*sizeof(int));
    buf = (struct book*)malloc(n*sizeof(struct book));
    
    for (int i = 0; i < n; i++)
    {
        buf[i].n = i+1;
        buf[i].assigned = false;
        buf[i].next = &buf[i+1];
        cin >> uolevi[i];
    }

    buf[n-1].next = NULL;
    
    for (int i = 0; i < n; i++)
        cin >> maija[i];
        
    struct book* first = buf;
    while(first)
    {
        if (assign(0, first))
            break;
        first = first->next;
    }

    for (int i = 0; i<n; i++)
    {
        printf("%i ", kaaleppi[i]);
    }
    printf("\n");
    
    return 0;
}

Test details

Test 1

Group: 1

Verdict: WRONG ANSWER

input
BBBAABBBAAAABBAAAABAABAABBBBBB...
view   save

correct output
2554

view   save

user output


view   save

Test 2

Group: 1

Verdict: WRONG ANSWER

input
GDFVYWQCZAFGICSXOSWBZMGPDBSSVL...
view   save

correct output
299

view   save

user output


view   save

Test 3

Group: 1

Verdict: WRONG ANSWER

input
AAAAAAAAAAAAAAAAAAAAAAAAAZAAAA...
view   save

correct output
4314

view   save

user output


view   save

Test 4

Group: 1

Verdict: WRONG ANSWER

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
view   save

correct output
4231

view   save

user output


view   save

Test 5

Group: 1

Verdict: WRONG ANSWER

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...
view   save

correct output
5050

view   save

user output


view   save

Test 6

Group: 2

Verdict: WRONG ANSWER

input
BBABABBBABBAABBABBABAABAAABABA...
view   save

correct output
6253029

view   save

user output


view   save

Test 7

Group: 2

Verdict: WRONG ANSWER

input
RBKJMLDVQMKHYKCNDIVVKOMFUXTFMG...
view   save

correct output
485173

view   save

user output


view   save

Test 8

Group: 2

Verdict: WRONG ANSWER

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
view   save

correct output
12427725

view   save

user output


view   save

Test 9

Group: 2

Verdict: WRONG ANSWER

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
view   save

correct output
12467549

view   save

user output


view   save

Test 10

Group: 2

Verdict: WRONG ANSWER

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...
view   save

correct output
12502500

view   save

user output


view   save

Test 11

Group: 3

Verdict: WRONG ANSWER

input
BAAAAABABBABAABAABABABBBABBAAB...
view   save

correct output
2500051369

view   save

user output


view   save

Test 12

Group: 3

Verdict: WRONG ANSWER

input
ABBURXDRVXAYBPXXOQZNYHLWGUEEWR...
view   save

correct output
192407124

view   save

user output


view   save

Test 13

Group: 3

Verdict: WRONG ANSWER

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
view   save

correct output
4998050400

view   save

user output


view   save

Test 14

Group: 3

Verdict: WRONG ANSWER

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
view   save

correct output
4998850144

view   save

user output


view   save

Test 15

Group: 3

Verdict: WRONG ANSWER

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...
view   save

correct output
5000050000

view   save

user output


view   save