Task: | Aita |
Sender: | |
Submission time: | 2015-07-18 18:32:53 +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.08 s | 1 | details |
#2 | ACCEPTED | 0.07 s | 1 | details |
#3 | ACCEPTED | 0.09 s | 1 | details |
#4 | ACCEPTED | 0.08 s | 1 | details |
#5 | ACCEPTED | 0.08 s | 1 | details |
#6 | ACCEPTED | 0.10 s | 2 | details |
#7 | ACCEPTED | 0.12 s | 2 | details |
#8 | ACCEPTED | 0.09 s | 2 | details |
#9 | ACCEPTED | 0.10 s | 2 | details |
#10 | ACCEPTED | 0.10 s | 2 | details |
#11 | ACCEPTED | 0.09 s | 3 | details |
#12 | ACCEPTED | 0.11 s | 3 | details |
#13 | ACCEPTED | 0.10 s | 3 | details |
#14 | WRONG ANSWER | 1.90 s | 3 | details |
#15 | ACCEPTED | 1.91 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 1000000007 using 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] = n/2; lo.erase(n/2); 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 |
---|
40238 40240 40242 40244 40246 ... |
Test 7
Group: 2
Verdict: ACCEPTED
input |
---|
68652 2 |
correct output |
---|
34327 1 34328 2 34329 3 34330 ... |
user output |
---|
34326 34328 34330 34332 34334 ... |
Test 8
Group: 2
Verdict: ACCEPTED
input |
---|
62735 2 |
correct output |
---|
31368 1 31369 2 31370 3 31371 ... |
user output |
---|
31367 31369 31371 31373 31375 ... |
Test 9
Group: 2
Verdict: ACCEPTED
input |
---|
71954 2 |
correct output |
---|
35978 1 35979 2 35980 3 35981 ... |
user output |
---|
35977 35979 35981 35983 35985 ... |
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 |
---|
44907 44910 44913 44916 44919 ... |
Test 12
Group: 3
Verdict: ACCEPTED
input |
---|
91140 5 |
correct output |
---|
45571 1 45572 2 45573 3 45574 ... |
user output |
---|
45570 45575 45580 45585 45590 ... |
Test 13
Group: 3
Verdict: ACCEPTED
input |
---|
66703 16675 |
correct output |
---|
33352 1 33353 2 33354 3 33355 ... |
user output |
---|
33351 50026 66701 1 16676 3335... |
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 |