QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#376711 | #6545. Connect the Dots | World_Creater | WA | 1ms | 5772kb | C++14 | 1.6kb | 2024-04-04 15:36:13 | 2024-04-06 21:08:18 |
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[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;
}
}
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 5676kb
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: 5768kb
input:
1 2 2 1 2
output:
1 1 2
result:
ok all 1 test passed
Test #3:
score: 0
Accepted
time: 0ms
memory: 3576kb
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: 0ms
memory: 5768kb
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 4 7 2 4 1 4 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: 1ms
memory: 5708kb
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: 5764kb
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: 5652kb
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: 1ms
memory: 5704kb
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: 0ms
memory: 5668kb
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: 5700kb
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: 1ms
memory: 5700kb
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: 0ms
memory: 5688kb
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: -100
Wrong Answer
time: 1ms
memory: 5772kb
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 8 1 2 2 3 4 5 5 6 6 7 3 5 2 5 1 6 8 1 2 2 3 4 5 5 6 6 7 1 3 3 5 1 6 10 1 2 2 3 3 4 4 5 5 6 6 7 2 4 2 5 2 6 2 7
result:
wrong answer output = 8, answer = 9.