CSES - Datatähti 2019 alku - Results
Submission details
Task:Ruudukko
Sender:N00B.exe
Submission time:2018-10-13 23:10:39 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.03 s1details
#20.02 s1details
#30.02 s1details
#4ACCEPTED0.02 s1details
#50.02 s1details
#60.02 s1details
#70.02 s1details
#80.01 s1details
#90.03 s1details
#100.01 s1details
#110.02 s2details
#120.02 s2details
#130.02 s2details
#140.02 s2details
#150.02 s2details
#160.01 s2details
#170.02 s2details
#180.01 s2details
#190.02 s2details
#200.02 s2details
#210.01 s3details
#220.01 s3details
#230.01 s3details
#240.01 s3details
#250.02 s3details
#260.01 s3details
#270.02 s3details
#280.01 s3details
#290.01 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:116: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:252:6:
  FOR(i, factors.size())
      ~~~~~~~~~~~~~~~~~                    
input/code.cpp:252:2: note: in expansion of macro 'FOR'
  FOR(i, factors.size())
  ^~~
input/code.cpp:55: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)
                   ~~~~...

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);

	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(((int)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:

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
2880

Test 8

Group: 1

Verdict:

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

correct output
22

user output
2880

Test 9

Group: 1

Verdict:

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

correct output
2

user output
2880

Test 10

Group: 1

Verdict:

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

correct output
1

user output
2880

Test 11

Group: 2

Verdict:

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

correct output
306442892

user output
818934788

Test 12

Group: 2

Verdict:

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

correct output
694861480

user output
310795856

Test 13

Group: 2

Verdict:

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

correct output
555319110

user output
399920258

Test 14

Group: 2

Verdict:

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

correct output
108372237

user output
81630681

Test 15

Group: 2

Verdict:

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

correct output
259107857

user output
847927728

Test 16

Group: 2

Verdict:

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

correct output
19906314

user output
195043943

Test 17

Group: 2

Verdict:

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

correct output
224313667

user output
887529205

Test 18

Group: 2

Verdict:

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

correct output
929574601

user output
801875054

Test 19

Group: 2

Verdict:

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

correct output
600226043

user output
553274239

Test 20

Group: 2

Verdict:

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

correct output
198353194

user output
921664213

Test 21

Group: 3

Verdict:

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

correct output
840243733

user output
553274239

Test 22

Group: 3

Verdict:

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

correct output
4146290

user output
553274239

Test 23

Group: 3

Verdict:

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

correct output
173518884

user output
553274239

Test 24

Group: 3

Verdict:

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

correct output
20044800

user output
553274239

Test 25

Group: 3

Verdict:

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

correct output
2

user output
553274239

Test 26

Group: 3

Verdict:

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

correct output
121064146

user output
921664213

Test 27

Group: 3

Verdict:

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

correct output
848435259

user output
921664213

Test 28

Group: 3

Verdict:

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

correct output
296240911

user output
921664213

Test 29

Group: 3

Verdict:

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

correct output
2196

user output
921664213

Test 30

Group: 3

Verdict:

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

correct output
1

user output
921664213