Submission #1316175

#TimeUsernameProblemLanguageResultExecution timeMemory
1316175opeleklanosComparing Plants (IOI20_plants)C++20
0 / 100
1 ms332 KiB
#include <iostream>
#include <vector>
#include <array>
#include <stdio.h>
#include "plants.h"
using namespace std;

int k;
int n;
vector<int> r;
vector<int> pref;

void init(int k1, vector<int> r1){
    k = k1;
    r = r1;
    n = r1.size();
    pref.assign(n, 0);
    pref[0] = 0;
    for(int i = 1; i<n; i++){
        pref[i] = pref[i-1] + (r[i] != r[i-1]);
    }
}

int compare_plants(int x, int y){
    if(pref[x-1] == pref[y] && x>y && r[y] == 1) return 1;
    if(pref[x-1] == pref[y] && x>y && r[y] == 0) return -1;
    if(pref[x] == pref[y-1] && x<y && r[x] == 1) return -1;
    if(pref[x] == pref[y-1] && x<y && r[x] == 0) return 1;

    if(x>y && (pref[x] != pref[n-1] || pref[y-1] != 0)) return 0;
    if(x<y && (pref[y] != pref[n-1] || pref[x-1] != 0)) return 0;

    if(x>y && r[x] == 1 && r[0] == 1) return -1;
    if(x>y && r[x] == 0 && r[0] == 0) return 1;
    if(x<y && r[y] == 1 && r[0] == 1) return 1;
    if(x<y && r[y] == 0 && r[0] == 0) return -1;

    return 0;
}

// int main(void){
//     freopen("input.txt", "r", stdin);
//     vector<int> r1;
//     int n1, k1;
//     cin>>n1>>k1;
//     r1.assign(n1, 0);
//     for(int i = 0; i<n1; i++){
//         cin>>r1[i];
//     }
//     init(k1, r1);
//     int q; cin>>q;
//     for(int i = 0; i<q; i++){
//         int a, b;
//         cin>>a>>b;
//         cout<<compare_plants(a, b)<<endl;
//     }
// }
#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...