QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#500800 | #6545. Connect the Dots | cocoa_chan# | WA | 1ms | 7984kb | C++17 | 2.0kb | 2024-08-01 20:48:32 | 2024-08-01 20:48:32 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
ll n,m,i,j,k,l,r,x,y,z,w,s,t,a[1100000],dp[1100000],prv[1100000],e,ee;
ll possible(ll x,ll y)
{
ll i;
for(i=x;i<y;i++)
{
if(a[i]==a[i+1])
return 0;
}
if(a[x]==a[y])
return 0;
return 1;
}
void asdf(ll x,ll y)
{
ll i;
for(i=x;i<y;i++)
printf("%lld %lld\n",i,i+1);
printf("%lld %lld\n",y,x);
}
int main()
{
scanf("%lld",&e);
for(ee=0;ee<e;ee++)
{
scanf("%lld %lld",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
x=0;
for(i=2;i<=n;i++)
{
if(a[i]!=a[1])
{
x=1;
break;
}
}
if(x==0)
{
printf("0\n");
continue;
}
dp[0]=1;
for(i=1;i<=n;i++)
{
dp[i]=0;
prv[i]=0;
}
for(i=1;i<=n;i++)
{
for(j=3;j<=10;j++)
{
if(i-j<0)
continue;
if(possible(i-j+1,i)&&dp[i-j]==1)
{
dp[i]=1;
prv[i]=i-j;
}
}
}
if(dp[n])
{
printf("%lld\n",n);
x=n;
while(x)
{
asdf(prv[x]+1,x);
x=prv[x];
}
continue;
}
printf("%lld\n",n-1);
x=a[1];
for(i=1;i<=n;i++)
{
if(x!=a[i])
{
y=i;
printf("%lld %lld\n",ll(1),i);
for(j=i-1;j>=2;j--)
{
if(a[j]!=x)
break;
printf("%lld %lld\n",j,i);
}
}
}
for(i=y+1;i<=n;i++)
{
printf("%lld %lld\n",y,i);
}
}
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 7984kb
input:
3 4 2 1 1 2 2 4 2 1 2 1 2 3 3 1 2 3
output:
3 1 3 2 3 1 4 4 1 2 2 3 3 4 4 1 3 1 2 2 3 3 1
result:
ok all 3 test passed
Test #2:
score: 0
Accepted
time: 1ms
memory: 7964kb
input:
1 2 2 1 2
output:
1 1 2
result:
ok all 1 test passed
Test #3:
score: -100
Wrong Answer
time: 1ms
memory: 7984kb
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 1 4 3 4 2 4 4 5 4 1 2 1 4 3 4 4 5 4 1 2 1 3 1 4 4 5 4 1 2 1 4 3 4 1 5 4 1 4 3 4 2 4 4 5 4 1 2 1 3 1 5 4 5 4 1 2 1 3 3 4 3 5 4 1 4 3 4 2 4 1 5 4 1 3 2 3 1 5 4 5 4 1 2 1 3 1 4 4 5
result:
wrong answer output = 4, answer = 5.