제출 #867779

#제출 시각아이디문제언어결과실행 시간메모리
867779mariaclaraAbracadabra (CEOI22_abracadabra)C++17
10 / 100
3074 ms41544 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<ll,ll> pii;
const int MAXN = 2e5+10;
const int MAXQ = 1e6+10;
const int MOD = 1e9+7;
#define all(x) x.begin(), x.end()
#define mk make_pair
#define pb push_back
#define f first
#define s second

int n, m, v[MAXN], a[MAXN], resp[MAXQ];
vector<pair<pii,int>> queries;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> m;

    for(int i = 1; i <= n; i++) 
        cin >> v[i];

    for(int i = 1, a, b; i <= m; i++) {
        cin >> a >> b;
        queries.pb({{a,b},i});
    }

    sort(all(queries));

    bool mudou = 1;
    for(int i = 0, cnt = 0; mudou; i++) {
        for(; cnt < queries.size(); cnt++) {
            if(queries[cnt].f.f == i) resp[queries[cnt].s] = v[queries[cnt].f.s];
            else break;
        }
        if(cnt > queries.size()) break;

        mudou = 0;
        for(int j = 1; j <= n; j++)
            a[j] = v[j];

        int l=1, r=n/2+1;
        for( ; l <= n/2 and r <= n; ) {
            if(a[l] < a[r]) v[l+r-n/2-1] = a[l], l++;
            else v[l+r-n/2-1] = a[r], r++;
        }
        while(l <= n/2) v[l+r-n/2-1] = a[l], l++;
        while(r <= n) v[l+r-n/2-1] = a[r], r++;

        for(int j = 1; j <= n; j++){
            if(v[j] != a[j]) mudou = 1;
        }
    }

    for(int i = 0; i < queries.size(); i++) {
        if(resp[queries[i].s] == 0) resp[queries[i].s] = v[queries[i].f.s];
    }

    for(int i = 1; i <= m; i++)
        cout << resp[i] << "\n";
}

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

Main.cpp: In function 'int main()':
Main.cpp:36:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<std::pair<long long int, long long int>, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |         for(; cnt < queries.size(); cnt++) {
      |               ~~~~^~~~~~~~~~~~~~~~
Main.cpp:40:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<std::pair<long long int, long long int>, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         if(cnt > queries.size()) break;
      |            ~~~~^~~~~~~~~~~~~~~~
Main.cpp:59:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<std::pair<long long int, long long int>, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |     for(int i = 0; i < queries.size(); 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...