제출 #1234285

#제출 시각아이디문제언어결과실행 시간메모리
1234285yixuan19Global Warming (CEOI18_glo)C++20
컴파일 에러
0 ms0 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

const long long decalage = (1<<30);
int tab[2*decalage];
void modify(int ind, int new_val){
    tab[ind] = new_val;
    while (ind > 1){
        ind/=2;
        tab[ind] = max(tab[ind*2], tab[ind*2+1]);
    }
}

int query(int l, int r){
    if (l == r) return tab[l];
    if (l%2 == 1){
        return max(tab[l], query(l+1,r));
    }
    if (r%2 == 0){
        return max(tab[r], query(l,r-1));
    }
    return query(l/2,r/2);
}

int tab2[2*decalage];
void modify2(int ind, int new_val){
    tab2[ind] = new_val;
    while (ind > 1){
        ind/=2;
        tab2[ind] = max(tab2[ind*2], tab2[ind*2+1]);
    }
}

int query2(int l, int r){
    if (l == r) return tab2[l];
    if (l%2 == 1){
        return max(tab2[l], query2(l+1,r));
    }
    if (r%2 == 0){
        return max(tab2[r], query2(l,r-1));
    }
    return query2(l/2,r/2);
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int N, max_change, temp;
    cin >> N >> max_change;
    vector<int> temps;
    for (int i = 0; i < N; ++i){
        cin >> temp;
        temps.push_back(temp);
    }
    int dp[N+1][2];
    for (int i = 0; i < N; ++i){
        for (int j = 0; j < 2; ++j){
            dp[i][j] = 0;
        }
    }
    
    dp[0][0] = 1;
    dp[0][1] = 1;
    modify(temps[0]+decalage, 1);
    modify2(temps[0]+decalage, 1);
    
    for (int i = 1; i < N; ++i){
        dp[i][0] = query(decalage,temps[i] + decalage -1) + 1;
        dp[i][1] = query(decalage,temps[i] + decalage -1 + max_change) + 1;

        //cout<<"query 0 "<<i<<" "<<query(decalage,temps[i] + decalage -1)<<endl;
        //cout<<"query 1 "<<i<<" "<<query(decalage,temps[i] + decalage -1 + max_change)<<endl;
        //cout<<"query 2 "<<i<<" "<<query2(decalage,temps[i] + decalage -1)<<endl;
        //cout<<max(dp[i][1],query2(decalage,temps[i] + decalage -1))<<endl;
        
        dp[i][1] = max(dp[i][1],query2(decalage,temps[i] + decalage -1)+1);

        modify(temps[i]+decalage, dp[i][0]);
        modify2(temps[i]+decalage, dp[i][1]);
    }

    int maxi = 0;
    for (int i = 0; i < N; ++i ){
        for (int j = 0; j < 2; ++j){
            //cout<<dp[i][j]<<" ";
            maxi = max(maxi, dp[i][j]);
        }
        //cout<<endl;
    }
    cout<<maxi<<endl;
}

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

/tmp/ccmdIrSG.o: in function `modify(int, int)':
glo.cpp:(.text+0xd): relocation truncated to fit: R_X86_64_PC32 against symbol `tab' defined in .bss section in /tmp/ccmdIrSG.o
/tmp/ccmdIrSG.o: in function `query(int, int)':
glo.cpp:(.text+0xc4): relocation truncated to fit: R_X86_64_PC32 against symbol `tab' defined in .bss section in /tmp/ccmdIrSG.o
glo.cpp:(.text+0xe6): relocation truncated to fit: R_X86_64_PC32 against symbol `tab' defined in .bss section in /tmp/ccmdIrSG.o
glo.cpp:(.text+0x109): relocation truncated to fit: R_X86_64_PC32 against symbol `tab' defined in .bss section in /tmp/ccmdIrSG.o
/tmp/ccmdIrSG.o: in function `main':
glo.cpp:(.text.startup+0x13): relocation truncated to fit: R_X86_64_PC32 against symbol `std::cin' defined in .bss._ZSt3cin section in /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.a(globals_io.o)
glo.cpp:(.text.startup+0x3c): relocation truncated to fit: R_X86_64_PC32 against symbol `std::cin' defined in .bss._ZSt3cin section in /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.a(globals_io.o)
glo.cpp:(.text.startup+0x47): relocation truncated to fit: R_X86_64_PC32 against symbol `std::cout' defined in .bss._ZSt4cout section in /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.a(globals_io.o)
glo.cpp:(.text.startup+0x1c1): relocation truncated to fit: R_X86_64_PC32 against symbol `tab' defined in .bss section in /tmp/ccmdIrSG.o
glo.cpp:(.text.startup+0x2df): relocation truncated to fit: R_X86_64_PC32 against symbol `std::cout' defined in .bss._ZSt4cout section in /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.a(globals_io.o)
/tmp/ccmdIrSG.o: in function `_GLOBAL__sub_I_tab':
glo.cpp:(.text.startup+0x418): relocation truncated to fit: R_X86_64_PC32 against `.bss'
/usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.a(vterminate.o): in function `__gnu_cxx::__verbose_terminate_handler()':
(.text._ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x1e): additional relocation overflows omitted from the output
/usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.a(ios_init.o): in function `std::ios_base::Init::Init()':
(.text._ZNSt8ios_base4InitC2Ev+0x1c): failed to convert GOTPCREL relocation against '_ZNSt8ios_base4Init11_S_refcountE'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x1c6): failed to convert GOTPCREL relocation against '_ZSt4cout'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x260): failed to convert GOTPCREL relocation against '_ZSt3cin'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x2e2): failed to convert GOTPCREL relocation against '_ZSt4cerr'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x353): failed to convert GOTPCREL relocation against '_ZSt4clog'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x541): failed to convert GOTPCREL relocation against '_ZSt5wcout'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x5e5): failed to convert GOTPCREL relocation against '_ZSt4wcin'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x670): failed to convert GOTPCREL relocation against '_ZSt5wcerr'; relink with --no-relax
(.text._ZNSt8ios_base4InitC2Ev+0x6e9): failed to convert GOTPCREL relocation against '_ZSt5wclog'; relink with --no-relax
/usr/bin/ld: final link failed
collect2: error: ld returned 1 exit status