제출 #1300210

#제출 시각아이디문제언어결과실행 시간메모리
1300210nathan4690Arcade (NOI20_arcade)C++20
100 / 100
195 ms6528 KiB
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define f1(i,n) for(int i=1;i<=n;i++)
#define __file_name ""
using namespace std;
const ll maxn=1e6+5, inf=1e18;

struct FenwickTree{
    int n;
    vector<int> bit;
    void init(int n_){
        n = n_;
        bit.resize(n + 1, 0);
    }
    void update(int idx, int v){
        for(;idx<=n;idx+=idx&-idx) bit[idx] = max(bit[idx], v);
    }
    int getMax(int idx){
        int s = 0;
        for(;idx>0;idx-=idx&-idx) s = max(s, bit[idx]);
        return s;
    }
};

int n, m;
pair<int,int> a[maxn];

bool cmp(pair<int,int> x, pair<int,int> y){
    x.second *= -1; y.second *= -1;
    return x < y;
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    if(fopen(__file_name ".inp", "r")){
        freopen(__file_name ".inp", "r", stdin);
        freopen(__file_name ".out", "w", stdout);
    }
    // code here
    cin >> n >> m;
    f1(i,m) cin >> a[i].first;
    f1(i,m) cin >> a[i].second;
    f1(i,m) a[i] = {a[i].first + a[i].second, a[i].second - a[i].first};
    sort(a+1,a+m+1,cmp);
    vector<int> vals;
    f1(i,m) vals.push_back(a[i].second);
    sort(vals.begin(), vals.end());
    vals.erase(unique(vals.begin(), vals.end()), vals.end());
    FenwickTree bit;
    bit.init(vals.size());
    f1(i,m){
        int idx = lower_bound(vals.begin(), vals.end(), a[i].second) - vals.begin() + 1;
        bit.update(idx, bit.getMax(idx - 1) + 1);
    }
    cout << bit.getMax(vals.size()) << '\n';
    return 0;
}

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

Arcade.cpp: In function 'int main()':
Arcade.cpp:38:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   38 |         freopen(__file_name ".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arcade.cpp:39:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |         freopen(__file_name ".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...