QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#204608#6636. Longest Strictly Increasing SequenceGeospiza#AC ✓2ms3492kbC++20894b2023-10-07 13:25:352023-10-07 13:25:35

Judging History

你现在查看的是最新测评结果

  • [2023-10-07 13:25:35]
  • 评测
  • 测评结果:AC
  • 用时:2ms
  • 内存:3492kb
  • [2023-10-07 13:25:35]
  • 提交

answer

#pragma GCC optimize(3,"Ofast","inline")
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define pb push_back
#define rep(i,a,b) for(ll i=a;i<=b;++i)
typedef pair<ll,ll> pll;
int	 main(){
	//dabiao();
    ios::sync_with_stdio(0); cin.tie(0);
	int T=1;
	cin>>T;
	while(T--){
		ll n;
		cin>>n;
		vector<ll>a(n+5);
		for(int i=1;i<=n;i++){
			cin>>a[i];
		}
		bool f=0;
		if(a[1]!=1)f=1;
		rep(i,2,n)
		{
		    if(a[i]>i||a[i]<a[i-1]||a[i]>a[i-1]+1)f=1;
		}
		if(f)
        {
            cout<<"NO\n";
            continue;
        }
        cout<<"YES\n";
        vector<ll>v;
        rep(i,1,n)
        {
            if(i==1)v.pb(1);
            else if(a[i]==a[i-1])v.pb(v.back());
            else v.pb(v.back()+1);
        }
        for(auto x:v)cout<<x<<" ";
        cout<<"\n";
	}
}
/*
4
1 1 1 1
*/

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3492kb

input:

2
6
1 2 3 2 5 7
2
1 2

output:

NO
YES
1 2 

result:

ok t=2 (2 test cases)

Test #2:

score: 0
Accepted
time: 2ms
memory: 3432kb

input:

3483
5
2 3 5 1 1
2
8 1
10
1 2 3 4 4 5 6 6 6 7
10
1 1 2 2 2 2 3 4 4 5
2
5 8
3
7 10 8
5
4 1 3 3 8
10
1 2 2 2 2 2 2 3 3 3
10
1 1 2 3 4 5 5 5 5 6
9
1 2 3 4 5 5 6 6 7
7
8 8 8 8 9 1 2
5
8 9 8 3 5
10
1 2 3 3 3 3 4 4 4 5
5
7 1 6 4 3
7
5 6 8 6 1 5 5
10
1 2 2 3 4 4 4 4 5 5
3
10 4 5
3
1 5 3
5
2 8 1 2 1
3
7 8 3...

output:

NO
NO
YES
1 2 3 4 4 5 6 6 6 7 
YES
1 1 2 2 2 2 3 4 4 5 
NO
NO
NO
YES
1 2 2 2 2 2 2 3 3 3 
YES
1 1 2 3 4 5 5 5 5 6 
YES
1 2 3 4 5 5 6 6 7 
NO
NO
YES
1 2 3 3 3 3 4 4 4 5 
NO
NO
YES
1 2 2 3 4 4 4 4 5 5 
NO
NO
NO
NO
NO
NO
YES
1 1 1 2 2 3 3 4 4 
NO
NO
NO
NO
NO
NO
NO
YES
1 2 3 3 3 4 4 4 5 5 
YES
1 1 2 2 2...

result:

ok t=3483 (3483 test cases)