QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#376713 | #6545. Connect the Dots | World_Creater | WA | 2ms | 5740kb | C++14 | 1.6kb | 2024-04-04 15:36:52 | 2024-04-04 15:36:53 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int n,m,a[200005],cnt[200005],lst[200005],nxt[200005],vis[200005];
priority_queue<pair<int,int> > q;
vector<pair<int,int> > ans;
void checkadd(int x)
{
if(!x) return ;
// cerr<<"Add:"<<x<<' '<<lst[x]<<" "<<nxt[x]<<" "<<a[lst[x]]<<" "<<a[nxt[x]]<<"\n";
if(nxt[x]&&lst[x]&&a[nxt[x]]!=a[lst[x]]) q.emplace(-cnt[a[x]],x);
}
void del(int x,int op)
{
if(!x) return ;
if(!op&&(!lst[x]||!nxt[x]||a[nxt[x]]==a[lst[x]])) return ;
cnt[a[x]]--;
nxt[lst[x]]=nxt[x];
lst[nxt[x]]=lst[x];
if(nxt[x]&&lst[x]&&a[nxt[x]]!=a[lst[x]]) ans.emplace_back(lst[x],nxt[x]);
checkadd(lst[x]);
checkadd(nxt[x]);
}
int main()
{
ios::sync_with_stdio(false);
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
nxt[0]=1;
for(int i=1;i<=n;i++)
{
cin>>a[i];
cnt[a[i]]++;
lst[i]=i-1;
nxt[i]=(i+1)%(n+1);
if(i>1&&a[i]!=a[i-1]) ans.emplace_back(i-1,i);
}
for(int i=1;i<=n;i++) checkadd(i);
q.emplace(-(n+1),n+1);
while(!q.empty())
{
auto [y,x]=q.top();
// cerr<<x<<" "<<y<<"\n";
if(x==n+1&&nxt[nxt[nxt[0]]])
{
del(nxt[nxt[0]],1);
continue ;
}
q.pop();
if(x==n+1) continue ;
if(vis[x]) continue ;
vis[x]=1;
if(cnt[a[x]]==1)
{
for(int i=lst[x];lst[i];i=lst[i]) del(i,0);
for(int i=nxt[x];nxt[i];i=nxt[i]) del(i,0);
del(x,0);
break ;
}
del(x,0);
}
cout<<ans.size()<<"\n";
for(auto [l,r]:ans)
{
cout<<l<<" "<<r<<"\n";
}
while(!q.empty()) q.pop();
ans.clear();
for(int i=1;i<=n;i++)
{
cnt[a[i]]=0;
vis[i]=0;
}
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5732kb
input:
3 4 2 1 1 2 2 4 2 1 2 1 2 3 3 1 2 3
output:
3 2 3 2 4 1 4 4 1 2 2 3 3 4 1 4 3 1 2 2 3 1 3
result:
ok all 3 test passed
Test #2:
score: 0
Accepted
time: 1ms
memory: 5692kb
input:
1 2 2 1 2
output:
1 1 2
result:
ok all 1 test passed
Test #3:
score: 0
Accepted
time: 0ms
memory: 5668kb
input:
10 5 2 2 2 2 1 2 5 2 2 1 2 1 2 5 2 1 2 2 2 1 5 2 2 1 2 1 1 5 2 1 1 1 2 1 5 2 1 2 2 1 2 5 2 2 1 1 2 2 5 2 2 2 2 1 1 5 2 1 1 2 1 2 5 2 1 2 2 2 1
output:
4 3 4 4 5 2 4 1 4 5 1 2 2 3 3 4 4 5 1 4 4 1 2 4 5 3 5 2 5 5 1 2 2 3 3 4 3 5 1 5 4 3 4 4 5 2 4 1 4 5 1 2 3 4 4 5 2 4 1 5 4 1 2 3 4 2 4 2 5 4 3 4 3 5 2 5 1 5 5 2 3 3 4 4 5 1 3 1 5 4 1 2 4 5 3 5 2 5
result:
ok all 10 test passed
Test #4:
score: 0
Accepted
time: 1ms
memory: 5612kb
input:
10 7 2 1 2 1 1 1 2 1 7 2 1 1 2 1 2 1 2 7 2 2 2 1 1 2 1 1 7 2 1 1 1 2 2 1 1 7 2 1 2 2 1 2 2 1 7 2 2 1 2 2 2 2 1 7 2 1 2 1 2 2 2 2 7 2 2 2 1 2 1 2 1 7 2 2 1 1 2 1 2 2 7 2 2 2 1 2 1 1 2
output:
7 1 2 2 3 5 6 6 7 4 6 3 6 1 6 8 2 3 3 4 4 5 5 6 6 7 1 3 1 5 1 7 7 2 3 4 5 5 6 1 3 5 7 3 5 1 7 6 3 4 5 6 4 6 2 4 1 4 4 7 7 1 2 3 4 4 5 6 7 5 7 2 4 1 5 7 1 2 2 3 6 7 5 7 4 7 3 7 1 7 7 1 2 2 3 3 4 3 5 3 6 3 7 1 7 8 2 3 3 4 4 5 5 6 6 7 1 3 1 5 1 7 7 1 2 3 4 4 5 5 6 2 4 5 7 1 5 7 2 3 3 4 4 5 6 7 5 7 1 3 ...
result:
ok all 10 test passed
Test #5:
score: 0
Accepted
time: 2ms
memory: 5668kb
input:
10 9 2 1 1 1 2 1 2 2 1 2 9 2 1 2 1 1 2 2 2 2 1 9 2 2 1 2 1 1 2 1 2 1 9 2 1 1 2 1 1 1 1 2 2 9 2 1 1 2 2 1 2 1 2 2 9 2 2 2 1 2 1 2 2 2 2 9 2 1 1 2 2 2 1 2 1 2 9 2 1 1 2 1 1 2 2 2 2 9 2 1 1 1 1 2 1 1 2 1 9 2 2 1 2 2 1 1 2 2 1
output:
10 3 4 4 5 5 6 7 8 8 9 6 8 2 4 1 4 1 6 1 9 9 1 2 2 3 4 5 8 9 3 5 7 9 6 9 5 9 1 5 11 1 2 2 3 3 4 5 6 6 7 7 8 8 9 4 6 1 4 1 7 1 9 9 2 3 3 4 7 8 7 9 6 9 5 9 4 9 1 3 1 9 10 2 3 4 5 5 6 6 7 7 8 1 3 7 9 3 5 1 6 1 9 9 2 3 3 4 4 5 5 6 5 7 5 8 5 9 1 3 1 5 10 2 3 5 6 6 7 7 8 8 9 1 3 4 6 3 6 1 7 1 9 9 2 3 3 4 ...
result:
ok all 10 test passed
Test #6:
score: 0
Accepted
time: 1ms
memory: 5672kb
input:
1 5 2 1 1 2 2 1
output:
4 2 3 4 5 3 5 1 3
result:
ok all 1 test passed
Test #7:
score: 0
Accepted
time: 1ms
memory: 5632kb
input:
1 7 2 2 1 1 2 1 1 2
output:
7 1 2 3 4 4 5 6 7 5 7 2 4 1 5
result:
ok all 1 test passed
Test #8:
score: 0
Accepted
time: 1ms
memory: 5668kb
input:
1 9 2 2 1 1 2 1 1 1 2 2
output:
9 1 2 3 4 4 5 7 8 7 9 6 9 5 9 2 4 1 5
result:
ok all 1 test passed
Test #9:
score: 0
Accepted
time: 0ms
memory: 5716kb
input:
4 20 2 2 1 1 2 1 2 1 1 2 1 1 1 1 2 2 2 1 1 2 2 20 2 2 1 2 2 2 1 1 2 2 2 1 2 2 2 2 1 2 2 1 2 20 2 2 2 1 1 2 2 1 1 1 1 1 2 1 1 2 2 1 2 1 1 20 2 2 1 2 2 2 1 2 2 1 1 1 2 1 2 2 1 2 1 1 2
output:
23 1 2 3 4 4 5 5 6 6 7 8 9 9 10 13 14 16 17 18 19 18 20 15 17 14 17 17 20 12 14 11 14 10 14 7 9 2 4 1 5 1 7 1 10 1 17 23 1 2 2 3 5 6 7 8 10 11 11 12 15 16 16 17 18 19 19 20 6 8 17 19 14 16 13 16 12 16 9 11 8 11 4 6 3 6 1 6 1 11 1 16 1 19 23 2 3 4 5 6 7 11 12 12 13 14 15 16 17 17 18 18 19 15 17 5 7 1...
result:
ok all 4 test passed
Test #10:
score: 0
Accepted
time: 1ms
memory: 5720kb
input:
4 100 2 2 2 2 1 2 1 1 1 1 2 2 1 2 2 2 1 2 2 2 2 1 1 1 2 2 1 1 2 1 1 2 1 2 2 1 1 1 2 1 2 1 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 2 2 2 1 2 2 2 1 1 1 2 1 2 1 2 2 1 2 2 1 1 2 1 1 1 1 2 2 1 2 1 1 2 2 1 2 2 1 2 1 2 2 2 100 2 2 1 1 1 1 1 2 2 2 1 2 1 2 2 1 2 2 1 1 1 1 2 1 1 1 2 2 1 1 2 1 1 2 1 1 2 1 1 1 1 1 2 1 ...
output:
126 3 4 4 5 5 6 9 10 11 12 12 13 15 16 16 17 20 21 23 24 25 26 27 28 28 29 30 31 31 32 32 33 34 35 37 38 38 39 39 40 40 41 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 53 54 54 55 57 58 60 61 61 62 64 65 67 68 68 69 69 70 70 71 71 72 73 74 74 75 76 77 78 79 79 80 83 84 85 86 86 87 87 88 89 90 91 ...
result:
ok all 4 test passed
Test #11:
score: 0
Accepted
time: 1ms
memory: 5664kb
input:
1 100 2 2 2 1 1 2 2 2 1 1 2 1 1 1 2 2 1 2 2 2 1 1 2 2 1 1 2 2 2 1 2 1 1 2 1 1 2 2 1 2 1 1 2 1 2 2 1 2 2 2 2 1 2 1 2 1 1 2 1 1 1 1 1 2 2 2 1 1 2 1 2 2 2 2 1 1 2 2 2 1 1 2 2 2 1 2 2 1 2 1 2 1 2 2 2 1 2 2 2 1 1
output:
125 2 3 4 5 7 8 9 10 10 11 13 14 15 16 16 17 19 20 21 22 23 24 25 26 28 29 29 30 30 31 32 33 33 34 35 36 37 38 38 39 39 40 41 42 42 43 43 44 45 46 46 47 50 51 51 52 52 53 53 54 54 55 56 57 57 58 62 63 65 66 67 68 68 69 69 70 73 74 75 76 78 79 80 81 83 84 84 85 86 87 87 88 88 89 89 90 90 91 91 92 94 ...
result:
ok all 1 test passed
Test #12:
score: 0
Accepted
time: 0ms
memory: 5612kb
input:
1 100 2 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1
output:
123 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 98 1...
result:
ok all 1 test passed
Test #13:
score: 0
Accepted
time: 1ms
memory: 5680kb
input:
1 200 2 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 ...
output:
208 3 4 13 14 23 24 33 34 43 44 53 54 63 64 73 74 83 84 93 94 103 104 113 114 123 124 133 134 143 144 153 154 163 164 173 174 183 184 193 194 193 195 193 196 193 197 193 198 193 199 193 200 192 200 191 200 190 200 189 200 188 200 187 200 186 200 185 200 184 200 182 184 181 184 180 184 179 184 178 18...
result:
ok all 1 test passed
Test #14:
score: 0
Accepted
time: 1ms
memory: 5740kb
input:
4 7 3 2 2 3 1 3 1 1 7 3 3 1 2 2 3 1 3 7 3 2 1 3 3 2 3 2 7 3 3 2 3 1 3 1 3
output:
9 2 3 3 4 4 5 5 6 2 4 1 4 5 7 1 5 1 7 9 1 2 2 3 4 5 5 6 6 7 3 5 1 3 3 6 3 7 9 1 2 2 3 4 5 5 6 6 7 2 4 2 5 2 6 2 7 10 1 2 2 3 3 4 4 5 5 6 6 7 2 4 2 5 2 6 2 7
result:
ok all 4 test passed
Test #15:
score: 0
Accepted
time: 1ms
memory: 5628kb
input:
4 20 3 1 2 3 1 3 2 1 1 2 3 1 2 2 1 1 2 2 1 2 2 20 3 1 2 1 2 3 3 2 1 1 3 3 2 2 1 2 3 1 1 2 2 20 3 3 1 1 3 3 1 3 2 1 1 2 3 3 3 1 1 2 1 1 1 20 3 3 2 2 1 3 1 1 3 3 2 2 2 1 1 2 1 2 2 2 2
output:
32 1 2 2 3 3 4 4 5 5 6 6 7 8 9 9 10 10 11 11 12 13 14 15 16 17 18 18 19 9 11 4 6 1 3 3 6 3 7 3 8 3 9 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 20 1 20 31 1 2 2 3 3 4 4 5 6 7 7 8 9 10 11 12 13 14 14 15 15 16 16 17 18 19 15 17 10 12 9 12 5 7 3 5 2 5 1 5 5 8 5 9 5 12 5 13 5 14 5 15 5 17 5 18 5 19 ...
result:
ok all 4 test passed
Test #16:
score: -100
Wrong Answer
time: 1ms
memory: 5672kb
input:
4 100 3 1 3 3 2 1 1 1 1 3 1 1 2 2 3 2 3 3 1 1 1 1 1 3 2 2 3 2 1 3 3 3 1 1 2 3 1 2 1 2 3 2 1 2 2 2 3 2 3 3 2 3 1 1 2 3 1 3 1 3 3 2 1 1 3 3 1 2 2 2 2 3 1 2 3 3 3 3 2 3 1 3 1 2 1 1 3 2 1 2 1 1 1 1 1 1 3 2 1 3 1 100 3 2 1 3 3 1 3 3 3 1 2 1 1 2 3 1 1 1 2 3 2 3 3 3 2 2 1 2 2 2 1 1 1 1 2 3 3 2 3 1 3 1 3 3 ...
output:
147 1 2 3 4 4 5 8 9 9 10 11 12 13 14 14 15 15 16 17 18 22 23 23 24 25 26 26 27 27 28 28 29 31 32 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 45 46 46 47 47 48 49 50 50 51 51 52 53 54 54 55 55 56 56 57 57 58 58 59 60 61 61 62 63 64 65 66 66 67 70 71 71 72 72 73 73 74 77 78 78 79 79 80...
result:
wrong answer output = 147, answer = 162.