Task: | Aita |
Sender: | |
Submission time: | 2015-07-18 18:25:26 +0300 |
Language: | C++ |
Status: | READY |
Result: | 45 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 17 |
#2 | ACCEPTED | 28 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.07 s | 1 | details |
#2 | ACCEPTED | 0.08 s | 1 | details |
#3 | ACCEPTED | 0.08 s | 1 | details |
#4 | ACCEPTED | 0.08 s | 1 | details |
#5 | ACCEPTED | 0.09 s | 1 | details |
#6 | ACCEPTED | 0.10 s | 2 | details |
#7 | ACCEPTED | 0.11 s | 2 | details |
#8 | ACCEPTED | 0.09 s | 2 | details |
#9 | ACCEPTED | 0.10 s | 2 | details |
#10 | ACCEPTED | 0.08 s | 2 | details |
#11 | ACCEPTED | 0.12 s | 3 | details |
#12 | ACCEPTED | 0.13 s | 3 | details |
#13 | ACCEPTED | 0.09 s | 3 | details |
#14 | WRONG ANSWER | 1.91 s | 3 | details |
#15 | ACCEPTED | 1.92 s | 3 | details |
Code
#include <iostream>#include <cmath>#include <set>#include <algorithm>#include <vector>#include <ctime> // std::time#include <cstdlib> // std::rand, std::srand#define ll long long#define ull unsigned long long#define pii pair<int, int>#define pll pair<long long, long long>#define defmod 1000000007using namespace std;int myrandom (int i) { return std::rand()%i;}int main(){cin.sync_with_stdio(0);cin.tie(0);ll n, k; cin >> n >> k;if(n <= 10){vector<int> heh;for(int i = 0; i < n; i++)heh.push_back(i+1);do{bool okkkkk = true;for(int i = 1; i < n; i++){if(abs(heh[i]-heh[i-1]) < k)okkkkk = false;}if(okkkkk){for(int i = 0; i < n; i++){cout << heh[i] << " ";}cout << endl;return 0;}}while(next_permutation(heh.begin(), heh.end()));cout << "QAQ" << endl;}ll r[101010] = {0};set<int> lo;for(int i = 0; i < n; i++)lo.insert(i+1);r[1] = 1;lo.erase(1);for(int i = 2; i <= n; i++){if(lo.count(r[i-1]+k)){r[i] = r[i-1]+k;lo.erase(r[i]);}else if(lo.count(r[i-1]-k)){r[i] = r[i-1]-k;lo.erase(r[i]);}else{int nn = *(lo.begin());if(abs(r[i-1]-nn) < k){nn = *(lo.lower_bound(r[i-1]+k));if(lo.count(nn) && abs(r[i-1]-nn) >= k){r[i] = nn;lo.erase(nn);}}else{r[i] = nn;lo.erase(nn);}}}bool ebin = true;r[0] = 99999999999LL;r[n+1] = 999999999999LL;for(int i = 1; i <= n; i++){if(abs(r[i]-r[i+1]) < k || abs(r[i]-r[i-1]) < k || r[i] <= 0 || r[i] > n){ebin = false;}}if(ebin){for(int i = 1; i <= n; i++){cout << r[i] << " ";}cout << endl;return 0;}vector<int> uuh;for(int i = 0; i < n; i++)uuh.push_back(i+1);srand ( unsigned ( time(0) ) );for(int i = 0; i < 1500; i++){random_shuffle(uuh.begin(), uuh.end(), myrandom);bool okkkk = true;for(int i = 1; i < n; i++){if(abs(uuh[i]-uuh[i-1]) < k)okkkk = false;}if(okkkk){for(int i = 0; i < n; i++){cout << uuh[i] << " ";}cout << endl;return 0;}}cout << "QAQ" << endl;return 0;}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
2 2 |
correct output |
---|
QAQ |
user output |
---|
QAQ QAQ |
Test 2
Group: 1
Verdict: ACCEPTED
input |
---|
3 2 |
correct output |
---|
QAQ |
user output |
---|
QAQ QAQ |
Test 3
Group: 1
Verdict: ACCEPTED
input |
---|
4 2 |
correct output |
---|
3 1 4 2 |
user output |
---|
2 4 1 3 |
Test 4
Group: 1
Verdict: ACCEPTED
input |
---|
7 4 |
correct output |
---|
QAQ |
user output |
---|
QAQ QAQ |
Test 5
Group: 1
Verdict: ACCEPTED
input |
---|
8 4 |
correct output |
---|
5 1 6 2 7 3 8 4 |
user output |
---|
4 8 3 7 2 6 1 5 |
Test 6
Group: 2
Verdict: ACCEPTED
input |
---|
80476 2 |
correct output |
---|
40239 1 40240 2 40241 3 40242 ... |
user output |
---|
1 3 5 7 9 11 13 15 17 19 21 23... |
Test 7
Group: 2
Verdict: ACCEPTED
input |
---|
68652 2 |
correct output |
---|
34327 1 34328 2 34329 3 34330 ... |
user output |
---|
1 3 5 7 9 11 13 15 17 19 21 23... |
Test 8
Group: 2
Verdict: ACCEPTED
input |
---|
62735 2 |
correct output |
---|
31368 1 31369 2 31370 3 31371 ... |
user output |
---|
1 3 5 7 9 11 13 15 17 19 21 23... |
Test 9
Group: 2
Verdict: ACCEPTED
input |
---|
71954 2 |
correct output |
---|
35978 1 35979 2 35980 3 35981 ... |
user output |
---|
1 3 5 7 9 11 13 15 17 19 21 23... |
Test 10
Group: 2
Verdict: ACCEPTED
input |
---|
4 2 |
correct output |
---|
3 1 4 2 |
user output |
---|
2 4 1 3 |
Test 11
Group: 3
Verdict: ACCEPTED
input |
---|
89814 3 |
correct output |
---|
44908 1 44909 2 44910 3 44911 ... |
user output |
---|
1 4 7 10 13 16 19 22 25 28 31 ... |
Test 12
Group: 3
Verdict: ACCEPTED
input |
---|
91140 5 |
correct output |
---|
45571 1 45572 2 45573 3 45574 ... |
user output |
---|
1 6 11 16 21 26 31 36 41 46 51... |
Test 13
Group: 3
Verdict: ACCEPTED
input |
---|
66703 16675 |
correct output |
---|
33352 1 33353 2 33354 3 33355 ... |
user output |
---|
1 16676 33351 50026 66701 2 16... |
Test 14
Group: 3
Verdict: WRONG ANSWER
input |
---|
66666 33333 |
correct output |
---|
33334 1 33335 2 33336 3 33337 ... |
user output |
---|
QAQ |
Test 15
Group: 3
Verdict: ACCEPTED
input |
---|
66666 33334 |
correct output |
---|
QAQ |
user output |
---|
QAQ |