CSES - Datatähti 2019 alku - Results
Submission details
Task:Ruudukko
Sender:N00B.exe
Submission time:2018-10-14 17:27:07 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.03 s1details
#20.01 s1details
#30.01 s1details
#4ACCEPTED0.02 s1details
#5ACCEPTED0.02 s1details
#60.02 s1details
#70.02 s1details
#80.01 s1details
#90.01 s1details
#100.02 s1details
#110.02 s2details
#120.02 s2details
#130.01 s2details
#140.01 s2details
#150.02 s2details
#160.01 s2details
#170.02 s2details
#180.02 s2details
#190.03 s2details
#200.01 s2details
#210.02 s3details
#220.02 s3details
#230.01 s3details
#240.02 s3details
#250.02 s3details
#260.02 s3details
#270.01 s3details
#280.02 s3details
#290.02 s3details
#300.02 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:8:35: warning: format '%d' expects argument of type 'int', but argument 2 has type 'll {aka long long int}' [-Wformat=]
 #define PRTI(num) printf("%d", num)
                                   ^
input/code.cpp:77:2: note: in expansion of macro 'PRTI'
  PRTI(f);
  ^~~~
input/code.cpp:8:35: warning: format '%d' expects argument of type 'int', but argument 2 has type 'll {aka long long int}' [-Wformat=]
 #define PRTI(num) printf("%d", num)
                                   ^
input/code.cpp:142:3: note: in expansion of macro 'PRTI'
   PRTI(f);
   ^~~~
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:278:6:
  FOR(i, factors.size())
      ~~~~~~~~~~~~~~~~~                    
input/code.cpp:278:2: note: in expansion of macro 'FOR'
  FOR(i, factors.size())
  ^~~
input/code.cpp:81:6: warning: unused variabl...

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
#define MODNUMBER 1000000007ll

typedef long long ll;

using namespace std;

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int n;
	SCNI(n);

	if(n == 2)
	{
		PRTI(2);
		return 0;
	}

	if(n == 3)
	{
		PRTI(12);
		return 0;
	}

	if(n == 4)
	{
		PRTI(216);
		return 0;
	}

	if(n == 5)
	{
		PRTI(2132);
		return 0;
	}

	ll f = 1;
	FOR(i, n)
	{
		ll f1 = n - i;
		ll f2 = n - i - 3;

		if(f2 < 2)
		{ f2 = 1; }

		if(f1 < 2)
		{ break; }

		f = (f * f1) % MODNUMBER;
		f = (f * f2) % MODNUMBER;
	}

	f = (f * (n - 1)) % MODNUMBER;
	f = (f * (n - 1)) % MODNUMBER;

	PRTI(f);
	return 0;


	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;
	bool noChars = true;

	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;
				noChars = false;
			}

			else if (c == 'B')
			{
				ERS(b, i);
				ERS(b2, k);
				bits[(i*n + k)] = 1;
				noChars = false;
			}
		}
	}

	if(noChars)
	{
		ll f = 1;
		FOR(i, n)
		{
			ll l = n - i;
			ll m = n - i - 1;
			
			if(l <= 1)
			{ break; }

			f = ((f % MODNUMBER) * (l % MODNUMBER)) % MODNUMBER;
			f = ((f % MODNUMBER) * (m % MODNUMBER)) % MODNUMBER;

		}

		PRTI(f);

		return 0;
	}

	//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:

input
2
..
A.

correct output
1

user output
2

Test 3

Group: 1

Verdict:

input
2
B.
.A

correct output
0

user output
2

Test 4

Group: 1

Verdict: ACCEPTED

input
3
...
...
...

correct output
12

user output
12

Test 5

Group: 1

Verdict: ACCEPTED

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

correct output
216

user output
216

Test 6

Group: 1

Verdict:

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

correct output
5280

user output
2132

Test 7

Group: 1

Verdict:

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

correct output
264

user output
2132

Test 8

Group: 1

Verdict:

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

correct output
22

user output
2132

Test 9

Group: 1

Verdict:

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

correct output
2

user output
2132

Test 10

Group: 1

Verdict:

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

correct output
1

user output
2132

Test 11

Group: 2

Verdict:

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

correct output
306442892

user output
421301633

Test 12

Group: 2

Verdict:

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

correct output
694861480

user output
983937441

Test 13

Group: 2

Verdict:

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

correct output
555319110

user output
596249803

Test 14

Group: 2

Verdict:

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

correct output
108372237

user output
432001732

Test 15

Group: 2

Verdict:

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

correct output
259107857

user output
629945635

Test 16

Group: 2

Verdict:

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

correct output
19906314

user output
414942234

Test 17

Group: 2

Verdict:

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

correct output
224313667

user output
636796939

Test 18

Group: 2

Verdict:

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

correct output
929574601

user output
734943350

Test 19

Group: 2

Verdict:

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

correct output
600226043

user output
469880424

Test 20

Group: 2

Verdict:

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

correct output
198353194

user output
383354298

Test 21

Group: 3

Verdict:

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

correct output
840243733

user output
469880424

Test 22

Group: 3

Verdict:

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

correct output
4146290

user output
469880424

Test 23

Group: 3

Verdict:

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

correct output
173518884

user output
469880424

Test 24

Group: 3

Verdict:

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

correct output
20044800

user output
469880424

Test 25

Group: 3

Verdict:

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

correct output
2

user output
469880424

Test 26

Group: 3

Verdict:

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

correct output
121064146

user output
383354298

Test 27

Group: 3

Verdict:

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

correct output
848435259

user output
383354298

Test 28

Group: 3

Verdict:

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

correct output
296240911

user output
383354298

Test 29

Group: 3

Verdict:

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

correct output
2196

user output
383354298

Test 30

Group: 3

Verdict:

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

correct output
1

user output
383354298