CSES - Datatähti 2017 loppu - Results
Submission details
Task:Ruudukko
Sender:siirikuoppala
Submission time:2023-11-16 18:56:12 +0200
Language:C++17
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED35
#2ACCEPTED21
#3ACCEPTED44
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1details
#2ACCEPTED0.00 s1details
#3ACCEPTED0.00 s1details
#4ACCEPTED0.00 s1details
#5ACCEPTED0.00 s1details
#6ACCEPTED0.00 s1details
#7ACCEPTED0.00 s1details
#8ACCEPTED0.00 s1details
#9ACCEPTED0.00 s1details
#10ACCEPTED0.00 s2details
#11ACCEPTED0.00 s2details
#12ACCEPTED0.00 s2details
#13ACCEPTED0.00 s2details
#14ACCEPTED0.00 s2details
#15ACCEPTED0.01 s2details
#16ACCEPTED0.00 s3details
#17ACCEPTED0.00 s3details
#18ACCEPTED0.01 s3details
#19ACCEPTED0.04 s3details
#20ACCEPTED0.09 s3details
#21ACCEPTED0.12 s3details

Code

#include <bits/stdc++.h>
 
using namespace std;
typedef long long ll;
#define N (1<<11)
 
vector<int> v;
ll t[N], S[N], hyhh[N];

ll res[N][N];

int brute(int n) {
	if(n<=3) {
		cout << "QAQ\n";
		return 0;
	}
	for(int i=1; i<=n; ++i){
		for(int j=0; j<n; ++j){
			v.push_back(i);
		}
	}
	while(true){
		random_shuffle(v.begin(), v.end());
		for(int i=0; i<n; ++i){
			int s=0;
			for(int j=0; j<n; ++j) s+=v[i*n+j];
			++S[s];
			s=0;
			for(int j=0; j<n; ++j) s+=v[j*n+i];
			++S[s];
		}
		int c=0;
		for(int i=0; i<N; ++i){
			if(S[i]>1) c=S[i];
			S[i]=0;
		}
		if(c>1) continue;
		for(int i=0; i<n; ++i){
			for(int j=0; j<n; ++j) cout << v[i*n+j] << " ";
			cout << "\n";
		}
		return 0;
  }
}
int main() {

  int n; cin >> n;

  if(n < 5) return brute(n);

  for(int i=0; i<n; ++i) res[0][i] = n;
  for(int i=1; i<n; ++i) res[i][0] = 1;
  for(int i=1; i<n; ++i) res[i][i] = i;

  for(int i=1; i<n; ++i){
    int val = (n-1-i) % (n-2);
    for(int j=1; j<n; ++j){
      if(i == j) continue;
      res[i][j] = val + 2;
      val = (val + 1) % (n-2);
    }
  }
  // n n n n n n n n n
  // 1 1 2 3 4 5
  // 1   2 2 3 4 5
  // 1     3
  // ....

  for(int i=0; i<n; ++i){
    for(int j=0; j<n; ++j){
      cout << res[i][j] << " ";
    }
    cout << "\n";
  }
  
  // for(int i=0; i<n; ++i) {
  //   int s = 0;
  //   for(int j=0; j<n; ++j) s += res[i][j];
  //   if(t[s]) cout << "QAQ\n";
  //   t[s] = 1;

  //   for(int j=0; j<n; ++j) s += res[j][i];
  //   if(t[s]) cout << "QAQ\n" << s << "\n";
  //   t[s] = 1;
    
  // }

  return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
2

correct output
QAQ

user output
QAQ

Test 2

Group: 1

Verdict: ACCEPTED

input
3

correct output
QAQ

user output
QAQ

Test 3

Group: 1

Verdict: ACCEPTED

input
4

correct output
3 4 3 4
3 1 1 2
4 4 3 2
2 2 1 1

user output
1 1 3 2 
2 1 2 4 
3 3 3 4 
2 1 4 4 

Test 4

Group: 1

Verdict: ACCEPTED

input
5

correct output
2 3 4 1 1 
3 4 2 1 2 
4 2 3 1 3 
4 3 2 1 4 
5 5 5 5 5 

user output
5 5 5 5 5 
1 1 2 3 4 
1 4 2 2 3 
1 3 4 3 2 
1 2 3 4 4 

Test 5

Group: 1

Verdict: ACCEPTED

input
6

correct output
2 3 4 5 1 1 
3 4 5 2 1 2 
4 5 2 3 1 3 
5 2 3 4 1 4 
5 4 3 2 1 5 
...

user output
6 6 6 6 6 6 
1 1 2 3 4 5 
1 5 2 2 3 4 
1 4 5 3 2 3 
1 3 4 5 4 2 
...

Test 6

Group: 1

Verdict: ACCEPTED

input
7

correct output
2 3 4 5 6 1 1 
3 4 5 6 2 1 2 
4 5 6 2 3 1 3 
5 6 2 3 4 1 4 
6 2 3 4 5 1 5 
...

user output
7 7 7 7 7 7 7 
1 1 2 3 4 5 6 
1 6 2 2 3 4 5 
1 5 6 3 2 3 4 
1 4 5 6 4 2 3 
...

Test 7

Group: 1

Verdict: ACCEPTED

input
8

correct output
2 3 4 5 6 7 1 1 
3 4 5 6 7 2 1 2 
4 5 6 7 2 3 1 3 
5 6 7 2 3 4 1 4 
6 7 2 3 4 5 1 5 
...

user output
8 8 8 8 8 8 8 8 
1 1 2 3 4 5 6 7 
1 7 2 2 3 4 5 6 
1 6 7 3 2 3 4 5 
1 5 6 7 4 2 3 4 
...

Test 8

Group: 1

Verdict: ACCEPTED

input
9

correct output
2 3 4 5 6 7 8 1 1 
3 4 5 6 7 8 2 1 2 
4 5 6 7 8 2 3 1 3 
5 6 7 8 2 3 4 1 4 
6 7 8 2 3 4 5 1 5 
...

user output
9 9 9 9 9 9 9 9 9 
1 1 2 3 4 5 6 7 8 
1 8 2 2 3 4 5 6 7 
1 7 8 3 2 3 4 5 6 
1 6 7 8 4 2 3 4 5 
...

Test 9

Group: 1

Verdict: ACCEPTED

input
10

correct output
2 3 4 5 6 7 8 9 1 1 
3 4 5 6 7 8 9 2 1 2 
4 5 6 7 8 9 2 3 1 3 
5 6 7 8 9 2 3 4 1 4 
6 7 8 9 2 3 4 5 1 5 
...

user output
10 10 10 10 10 10 10 10 10 10 
1 1 2 3 4 5 6 7 8 9 
1 9 2 2 3 4 5 6 7 8 
1 8 9 3 2 3 4 5 6 7 
1 7 8 9 4 2 3 4 5 6 
...

Test 10

Group: 2

Verdict: ACCEPTED

input
3

correct output
QAQ

user output
QAQ

Test 11

Group: 2

Verdict: ACCEPTED

input
4

correct output
3 4 3 4
3 1 1 2
4 4 3 2
2 2 1 1

user output
1 1 3 2 
2 1 2 4 
3 3 3 4 
2 1 4 4 

Test 12

Group: 2

Verdict: ACCEPTED

input
29

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
29 29 29 29 29 29 29 29 29 29 ...

Test 13

Group: 2

Verdict: ACCEPTED

input
48

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
48 48 48 48 48 48 48 48 48 48 ...

Test 14

Group: 2

Verdict: ACCEPTED

input
80

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
80 80 80 80 80 80 80 80 80 80 ...

Test 15

Group: 2

Verdict: ACCEPTED

input
97

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
97 97 97 97 97 97 97 97 97 97 ...

Test 16

Group: 3

Verdict: ACCEPTED

input
3

correct output
QAQ

user output
QAQ

Test 17

Group: 3

Verdict: ACCEPTED

input
4

correct output
3 4 3 4
3 1 1 2
4 4 3 2
2 2 1 1

user output
1 1 3 2 
2 1 2 4 
3 3 3 4 
2 1 4 4 

Test 18

Group: 3

Verdict: ACCEPTED

input
111

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
111 111 111 111 111 111 111 11...

Test 19

Group: 3

Verdict: ACCEPTED

input
506

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
506 506 506 506 506 506 506 50...

Test 20

Group: 3

Verdict: ACCEPTED

input
844

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
844 844 844 844 844 844 844 84...

Test 21

Group: 3

Verdict: ACCEPTED

input
991

correct output
2 3 4 5 6 7 8 9 10 11 12 13 14...

user output
991 991 991 991 991 991 991 99...