CSES - Datatähti 2019 alku - Results
Submission details
Task:Ruudukko
Sender:N00B.exe
Submission time:2018-10-13 21:18:11 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1details
#2ACCEPTED0.01 s1details
#3ACCEPTED0.01 s1details
#4ACCEPTED0.02 s1details
#50.02 s1details
#60.01 s1details
#70.01 s1details
#80.03 s1details
#9ACCEPTED0.03 s1details
#10--1details
#110.02 s2details
#120.02 s2details
#130.05 s2details
#140.26 s2details
#150.77 s2details
#16--2details
#17--2details
#18--2details
#19--2details
#20--2details
#210.18 s3details
#220.04 s3details
#230.04 s3details
#240.03 s3details
#25ACCEPTED0.04 s3details
#260.17 s3details
#270.04 s3details
#280.03 s3details
#290.04 s3details
#30ACCEPTED0.04 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:7:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define FOR(num, n) for(int num = 0; num < n; num++)
input/code.cpp:203:6:
  FOR(i, factors.size())
      ~~~~~~~~~~~~~~~~~                    
input/code.cpp:203:2: note: in expansion of macro 'FOR'
  FOR(i, factors.size())
  ^~~
input/code.cpp:31:6: warning: unused variable 'bitAmount' [-Wunused-variable]
  int bitAmount = n * n;
      ^~~~~~~~~
input/code.cpp:11:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define SCNI(num) scanf("%d", &num)
                   ~~~~~^~~~~~~~~~~~
input/code.cpp:29:2: note: in expansion of macro 'SCNI'
  SCNI(n);
  ^~~~
input/code.cpp:12:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define SCNC(ch) scanf("%c", &ch)...

Code

#include <iostream>
#include <bitset>
#include <unordered_set>
#include <vector>
#include <stdio.h>
#define PAUSE getchar();getchar()
#define FOR(num, n) for(int num = 0; num < n; num++)
#define PRTI(num) printf("%d", num)
#define PRT(s) printf("%s", s)
#define LBRK printf("\n");
#define SCNI(num) scanf("%d", &num)
#define SCNC(ch) scanf("%c", &ch)
#define USETI unordered_set<int>
#define NSRT(container, val) container.insert(val)
#define CNT(container, val) container.count(val)
#define ERS(container, val) container.erase(val)
#define VADD(container, val) container.push_back(val)
#define VECTI vector<int>
#define PRINTSITUATION LBRK; FOR(i, n) { FOR(k, n) { int b = bits[i*n + k]; PRTI(b);} LBRK;} LBRK
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
SCNI(n);
int bitAmount = n * n;
bitset<4000000> bits;
USETI a, b, a2, b2;
VECTI factors;
FOR(i, n)
{
NSRT(a, i);
NSRT(b, i);
NSRT(a2, i);
NSRT(b2, i);
}
char c;
FOR(i, n)
{
FOR(k, n)
{
SCNC(c);
if(c == '\n')
{ SCNC(c); }
if(c == 'A')
{
ERS(a, i);
ERS(a2, k);
bits[(i*n+k)] = 1;
}
else if (c == 'B')
{
ERS(b, i);
ERS(b2, k);
bits[(i*n + k)] = 1;
}
}
}
//LBRK;
//PAUSE;
int min = 2147483647;
int index = -1;
while(min > 1)
{
min = 2147483647;
index = -1;
FOR(i, n)
{
if (CNT(a, i) == 0)
{ continue; }
int p = 0;
FOR(k, n)
{
if (CNT(a2, k) == 0)
{ continue; }
if (bits[(i*n + k)] != 1)
{ p++; }
}
if (p < min)
{ min = p; index = i; }
}
VADD(factors, min);
FOR(k, n)
{
if (CNT(a2, k) == 0)
{ continue; }
if (bits[(index*n + k)] != 1)
{
ERS(a, index);
ERS(a2, k);
bits[(index*n + k)] = 1;
break;
}
}
/*
LBRK;
PRTI(min);
LBRK;
PRTI(index);
LBRK;
PRINTSITUATION;
LBRK;
PAUSE;
PAUSE;
*/
}
min = 2147483647;
index = -1;
while (min > 1)
{
min = 2147483647;
index = -1;
FOR(i, n)
{
if (CNT(b, i) == 0)
{
continue;
}
int p = 0;
FOR(k, n)
{
if (CNT(b2, k) == 0)
{
continue;
}
if (bits[(i*n + k)] != 1)
{
p++;
}
}
if (p < min)
{
min = p; index = i;
}
}
VADD(factors, min);
FOR(k, n)
{
if (CNT(b2, k) == 0)
{
continue;
}
if (bits[(index*n + k)] != 1)
{
ERS(b, index);
ERS(b2, k);
bits[(index*n + k)] = 1;
break;
}
}
/*
LBRK;
PRTI(min);
LBRK;
PRTI(index);
LBRK;
PRINTSITUATION;
LBRK;
PAUSE;
PAUSE;
*/
}
int ans = 1;
FOR(i, factors.size())
{ ans *= factors[i]; }
PRTI(ans);
//PAUSE;
//PAUSE;
return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
2
..
..

correct output
2

user output
2

Test 2

Group: 1

Verdict: ACCEPTED

input
2
..
A.

correct output
1

user output
1

Test 3

Group: 1

Verdict: ACCEPTED

input
2
B.
.A

correct output
0

user output
0

Test 4

Group: 1

Verdict: ACCEPTED

input
3
...
...
...

correct output
12

user output
12

Test 5

Group: 1

Verdict:

input
4
....
....
....
....

correct output
216

user output
144

Test 6

Group: 1

Verdict:

input
5
.....
.....
.....
.....
...

correct output
5280

user output
2880

Test 7

Group: 1

Verdict:

input
5
....A
.....
.....
.....
...

correct output
264

user output
288

Test 8

Group: 1

Verdict:

input
5
B....
.....
.....
.A.B.
...

correct output
22

user output
36

Test 9

Group: 1

Verdict: ACCEPTED

input
5
B.A..
....A
.....
A.B..
...

correct output
2

user output
2

Test 10

Group: 1

Verdict:

input
5
A.B..
BA...
.B.A.
...BA
...

correct output
1

user output
(empty)

Test 11

Group: 2

Verdict:

input
10
..........
..........
..........
..........
...

correct output
306442892

user output
-1736015872

Test 12

Group: 2

Verdict:

input
50
.................................

correct output
694861480

user output
0

Test 13

Group: 2

Verdict:

input
111
.................................

correct output
555319110

user output
0

Test 14

Group: 2

Verdict:

input
222
.................................

correct output
108372237

user output
0

Test 15

Group: 2

Verdict:

input
333
.................................

correct output
259107857

user output
0

Test 16

Group: 2

Verdict:

input
444
.................................

correct output
19906314

user output
(empty)

Test 17

Group: 2

Verdict:

input
497
.................................

correct output
224313667

user output
(empty)

Test 18

Group: 2

Verdict:

input
498
.................................

correct output
929574601

user output
(empty)

Test 19

Group: 2

Verdict:

input
499
.................................

correct output
600226043

user output
(empty)

Test 20

Group: 2

Verdict:

input
500
.................................

correct output
198353194

user output
(empty)

Test 21

Group: 3

Verdict:

input
499
.................................

correct output
840243733

user output
0

Test 22

Group: 3

Verdict:

input
499
........................A........

correct output
4146290

user output
0

Test 23

Group: 3

Verdict:

input
499
B.........A......................

correct output
173518884

user output
-381681664

Test 24

Group: 3

Verdict:

input
499
...A....B........................

correct output
20044800

user output
18144000

Test 25

Group: 3

Verdict: ACCEPTED

input
499
AB...............................

correct output
2

user output
2

Test 26

Group: 3

Verdict:

input
500
.................................

correct output
121064146

user output
0

Test 27

Group: 3

Verdict:

input
500
.................................

correct output
848435259

user output
0

Test 28

Group: 3

Verdict:

input
500
.....B........A..................

correct output
296240911

user output
871890944

Test 29

Group: 3

Verdict:

input
500
.A......B........................

correct output
2196

user output
1728

Test 30

Group: 3

Verdict: ACCEPTED

input
500
...AB............................

correct output
1

user output
1