제출 #95036

#제출 시각아이디문제언어결과실행 시간메모리
95036Osama_AlkhodairyDEL13 (info1cup18_del13)C++17
0 / 100
11 ms1140 KiB
#include <bits/stdc++.h>
using namespace std;
#define finish(x) return cout << x << endl, 0
#define ll long long

void solve(){
    int n, k;
    cin >> n >> k;
    vector <int> a;
    for(int i = 0 ; i < k ; i++){
        int x;
        cin >> x;
        a.push_back(x);
    }
    a.push_back(0);
    a.push_back(n + 1);
    sort(a.begin(), a.end());
    vector <int> b;
    for(int i = 1 ; i < (int)a.size() ; i++)
        b.push_back(a[i] - a[i - 1] - 1);
    vector <int> c;
    for(auto &i : b){
        int x = i;
        int cur = 0;
        while(x >= 3){
            x -= 2;
            cur++;
        }
        c.push_back(cur);
    }
    for(int i = 0 ; i + 1 < (int)b.size() ; i++){
        while(c[i] && b[i + 1] < b[i])
            b[i] -= 2, c[i]--;
        if(b[i + 1] < b[i]){
            cout << -1 << endl;
            return;
        }
        b[i + 1] -= b[i];
    }
    if(b.back() % 2){
        cout << -1 << endl;
        return;
    }
    cout << 0 << endl << endl;
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int T;
    cin >> T;
    while(T--) solve();
}
#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...