제출 #654146

#제출 시각아이디문제언어결과실행 시간메모리
654146aebovFinancial Report (JOI21_financial)C++17
48 / 100
4091 ms3520 KiB
#include<iostream>
#include<algorithm>
#include<vector>
#include<utility>
#define ln (e-s+1)
#define md ((e+s)/2)
#define dm ((e+s)/2 + 1)
#define lc (id*2)
#define rc (id*2 + 1)
#define ll long long
#define F first
#define S second
#define pll pair<ll , ll>
#define pii pair<int, int>
#define pb push_back
using namespace std;

const int N = (int)3e5 + 5, inf = (int)1e9 + 7;
int n, d, a[N];
int dp[N];
vector<int> vct;
int seg[N][1];

void upd(int k, int p,int x,int id = 1,int s = 1,int e = n){
	if(p < s || p > e)return;
	if(ln == 1){
		seg[k][id] = max(seg[k][id], x);
		return;
	}
	if(p>= s&&p <= md)upd(k , p, x, lc, s, md);
	if(p>=dm&&p <= e)upd(k, p, x, rc, dm, e);
	seg[k][id] = max(seg[k][lc], seg[k][rc]);
}
//void build(int k, int id = 1,int s)
int get(int k,int l,int r,int id = 1,int s = 1,int  e = n){
	if(r < s|| l > e)return 0;
	if(l <= s && e <= r)return seg[k][id];
	return max(get(k, l, r, lc, s, md), get(k, l, r, rc, dm , e));
}
bool wef;
int few, ret;
int main(){
	//ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	scanf("%d%d", &n, &d);
	for(int i = 1; i <= n; i ++) scanf("%d", &a[i]), vct.pb(a[i]);
	sort(vct.begin(), vct.end()); unique( vct.begin(), vct.end());
	for(int i = 1; i <= n; i ++){
		a[i] = (lower_bound(vct.begin(), vct.end(), a[i]) - vct.begin());
	}
	for(int i = 1; i <= n; i ++){
        dp[i] = wef = 1;
        few = 0;
		for(int j = i - 1 ; j ; j --){
            if(wef && a[j] < a[i]) dp[i] = max( dp[i], dp[j] + 1);
            (a[j] >= a[i])? few ++: few =0;
			if(few >= d) wef = 0;
        }
        ret = max(ret,dp[i]);
    }
    cout << ret <<endl;
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:44:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   44 |  scanf("%d%d", &n, &d);
      |  ~~~~~^~~~~~~~~~~~~~~~
Main.cpp:45:36: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |  for(int i = 1; i <= n; i ++) scanf("%d", &a[i]), vct.pb(a[i]);
      |                               ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...