| Task: | Osajono |
| Sender: | Razbit |
| Submission time: | 2015-09-29 21:29:03 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.05 s | 1 | details |
| #2 | WRONG ANSWER | 0.05 s | 1 | details |
| #3 | WRONG ANSWER | 0.05 s | 1 | details |
| #4 | WRONG ANSWER | 0.05 s | 1 | details |
| #5 | WRONG ANSWER | 0.06 s | 1 | details |
| #6 | WRONG ANSWER | 0.06 s | 2 | details |
| #7 | WRONG ANSWER | 0.06 s | 2 | details |
| #8 | WRONG ANSWER | 0.05 s | 2 | details |
| #9 | WRONG ANSWER | 0.05 s | 2 | details |
| #10 | WRONG ANSWER | 0.05 s | 2 | details |
| #11 | WRONG ANSWER | 0.06 s | 3 | details |
| #12 | WRONG ANSWER | 0.05 s | 3 | details |
| #13 | WRONG ANSWER | 0.05 s | 3 | details |
| #14 | WRONG ANSWER | 0.05 s | 3 | details |
| #15 | WRONG ANSWER | 0.06 s | 3 | details |
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... |
| correct output |
|---|
| 2554 |
| user output |
|---|
| (empty) |
Test 2
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| GDFVYWQCZAFGICSXOSWBZMGPDBSSVL... |
| correct output |
|---|
| 299 |
| user output |
|---|
| (empty) |
Test 3
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| AAAAAAAAAAAAAAAAAAAAAAAAAZAAAA... |
| correct output |
|---|
| 4314 |
| user output |
|---|
| (empty) |
Test 4
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
| correct output |
|---|
| 4231 |
| user output |
|---|
| (empty) |
Test 5
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ... |
| correct output |
|---|
| 5050 |
| user output |
|---|
| (empty) |
Test 6
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| BBABABBBABBAABBABBABAABAAABABA... |
| correct output |
|---|
| 6253029 |
| user output |
|---|
| (empty) |
Test 7
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| RBKJMLDVQMKHYKCNDIVVKOMFUXTFMG... |
| correct output |
|---|
| 485173 |
| user output |
|---|
| (empty) |
Test 8
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
| correct output |
|---|
| 12427725 |
| user output |
|---|
| (empty) |
Test 9
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
| correct output |
|---|
| 12467549 |
| user output |
|---|
| (empty) |
Test 10
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ... |
| correct output |
|---|
| 12502500 |
| user output |
|---|
| (empty) |
Test 11
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| BAAAAABABBABAABAABABABBBABBAAB... |
| correct output |
|---|
| 2500051369 |
| user output |
|---|
| (empty) |
Test 12
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| ABBURXDRVXAYBPXXOQZNYHLWGUEEWR... |
| correct output |
|---|
| 192407124 |
| user output |
|---|
| (empty) |
Test 13
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
| correct output |
|---|
| 4998050400 |
| user output |
|---|
| (empty) |
Test 14
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
| correct output |
|---|
| 4998850144 |
| user output |
|---|
| (empty) |
Test 15
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ... |
| correct output |
|---|
| 5000050000 |
| user output |
|---|
| (empty) |
