CSES - Putka Open 2015 – 4/6 - Results
Submission details
Task:Taulukot
Sender:
Submission time:2015-10-11 15:32:12 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED26
#2ACCEPTED29
#3ACCEPTED45
Test results
testverdicttimegroup
#1ACCEPTED0.06 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.06 s1details
#4ACCEPTED0.06 s1details
#5ACCEPTED0.06 s1details
#6ACCEPTED0.06 s2details
#7ACCEPTED0.05 s2details
#8ACCEPTED0.06 s2details
#9ACCEPTED0.05 s2details
#10ACCEPTED0.05 s2details
#11ACCEPTED0.06 s3details
#12ACCEPTED0.07 s3details
#13ACCEPTED0.06 s3details
#14ACCEPTED0.06 s3details
#15ACCEPTED0.07 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:95:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < l1.size(); ++i) {
                    ^
input/code.cpp:100:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < l2.size(); ++i) {
                    ^

Code

#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <utility>
#include <set>
#include <unordered_set>
#include <cmath>
#include <math.h>
#include <queue>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sstream>
#include <tuple>

using namespace std;
typedef long long LL;

#define FOR(i, a, b) for (int i = (a); i < (b); ++i)

/*
bool isPrime(int num) {
//cout << "asd" << endl;
	if (!(num/2)) return false; 
	for (int i = 1; i <= (int)ceil(sqrt(num)); i++) { 
		if (num % i == 0) return false;
	} 
    return true; 
}
*/


bool isPrime (int num)
{
    if (num <=1)
        return false;
    else if (num == 2)         
        return true;
    else if (num % 2 == 0)
        return false;
    else
    {
        bool prime = true;
        int divisor = 3;
        double num_d = static_cast<double>(num);
        int upperLimit = static_cast<int>(sqrt(num_d) +1);
        
        while (divisor <= upperLimit)
        {
            if (num % divisor == 0)
                prime = false;
            divisor +=2;
        }
        return prime;
    }
}



int main() {
	int n;
	cin >> n;
	vector<int> l1(n);
	vector<int> l2(n);

	int pos = 0;

	while (n > 0) {
		if (n == 1) {
			l1[pos] = 1;
			l2[pos] = 1;
			break;
		}

		int cand = n + 1;
		while (!isPrime(cand)) {
			cand++;
		}
//cout << cand << " "  << cand-n << " q " << n+1 << endl;
	
		for (int i = cand-n; i < n+1; ++i) {
			l1[pos] = i;
			l2[pos] = cand-i;
//cout << "QQQQQ " << pos << " "<< l1[pos] << " " << l2[pos] << endl;
			pos++;
		}

		n = cand-n-1;
	}
	
	for (int i = 0; i < l1.size(); ++i) {
		cout << l1[i] << " ";
	}
	cout << endl;

	for (int i = 0; i < l2.size(); ++i) {
		cout << l2[i] << " ";
	}
	cout << endl;

}




Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1

correct output


user output


Test 2

Group: 1

Verdict: ACCEPTED

input
4

correct output
1 2 3 4 
2 1 4 3 

user output
1 2 3 4 
4 3 2 1 

Test 3

Group: 1

Verdict: ACCEPTED

input
5

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

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

Test 4

Group: 1

Verdict: ACCEPTED

input
8

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

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

Test 5

Group: 1

Verdict: ACCEPTED

input
9

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

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

Test 6

Group: 2

Verdict: ACCEPTED

input
77

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

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

Test 7

Group: 2

Verdict: ACCEPTED

input
70

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

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

Test 8

Group: 2

Verdict: ACCEPTED

input
72

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

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

Test 9

Group: 2

Verdict: ACCEPTED

input
86

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

user output
3 4 5 6 7 8 9 10 11 12 13 14 1...

Test 10

Group: 2

Verdict: ACCEPTED

input
68

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

user output
3 4 5 6 7 8 9 10 11 12 13 14 1...

Test 11

Group: 3

Verdict: ACCEPTED

input
90764

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

user output
23 24 25 26 27 28 29 30 31 32 ...

Test 12

Group: 3

Verdict: ACCEPTED

input
97976

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

user output
11 12 13 14 15 16 17 18 19 20 ...

Test 13

Group: 3

Verdict: ACCEPTED

input
96762

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

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

Test 14

Group: 3

Verdict: ACCEPTED

input
94823

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

user output
14 15 16 17 18 19 20 21 22 23 ...

Test 15

Group: 3

Verdict: ACCEPTED

input
91479

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

user output
14 15 16 17 18 19 20 21 22 23 ...