QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#499688 | #6728. To the Park | ssmy | WA | 656ms | 45184kb | C++20 | 1.5kb | 2024-07-31 17:05:27 | 2024-07-31 17:05:27 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> PII;
const int N = 1e6 + 10;
bool st[N];
vector <vector<int>> s(N);
set <int> q;
vector <PII> l;
void solve()
{
int n;
std:: cin >> n;
for(int i = 1; i <= n; i ++ )
{
s[i].clear();
}
int cnt = 0;
for(int i = 2; i <= n; i ++ )
{
if(!st[i])
{
cnt ++ ;
}
for(int j = i; j <= n; j += i)
{
s[i].push_back(j);
st[j] = true;
}
}
// for(auto p : s[2])
// {
// std:: cout << p << " ";
// }
q.clear();
l.clear();
for(int i = 1; i <= n; i ++ )
{
q.insert(i);
}
for(int i = 2; i <= n; i ++ )
{
int ans1, ans2;
if(st[i])
{
int pre1, pre2;
for(int j = 0; j < s[i].size(); )
{
while(j <= s[i].size() - 1 && q.find(s[i][j]) == q.end())
{
j ++ ;
}
pre1 = j;
ans1 = s[i][j];
j ++ ;
while(j <= s[i].size() - 1 && q.find(s[i][j]) == q.end())
{
j ++ ;
}
pre2 = j;
ans2 = s[i][j];
j ++ ;
if(pre1 < s[i].size() && pre2 < s[i].size())
{
q.erase(ans1);
q.erase(ans2);
l.push_back({ans1, ans2});
}
}
}
}
std:: cout << l.size();
for(auto p : l)
{
std:: cout << " " << p.first << " " << p.second;
}
std:: cout << endl;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int T;
std:: cin >> T;
while(T -- )
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 3ms
memory: 26596kb
input:
3 1 4 6
output:
0 1 2 4 2 2 4 3 6
result:
ok 4 cases
Test #2:
score: -100
Wrong Answer
time: 656ms
memory: 45184kb
input:
1007 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101...
output:
0 0 0 1 2 4 1 2 4 2 2 4 3 6 2 2 4 3 6 2 2 4 6 8 3 2 4 6 8 3 9 4 2 4 6 8 3 9 5 10 4 2 4 6 8 3 9 5 10 4 2 4 6 8 10 12 3 9 4 2 4 6 8 10 12 3 9 5 2 4 6 8 10 12 3 9 7 14 6 2 4 6 8 10 12 3 9 5 15 7 14 6 2 4 6 8 10 12 14 16 3 9 5 15 6 2 4 6 8 10 12 14 16 3 9 5 15 6 2 4 6 8 10 12 14 16 3 9 15 18 6 2 4 6 8 1...
result:
wrong answer Case #18: Participant has a worse answer